Java学习之IO流(FIle类)

File类:文件、文件夹(目录)、路径的描述

一、构造函数

  File​(File parent, String child);     File从父抽象路径名和子路径名字符串创建新实例。
  File​(String pathname);        File通过将给定的路径名​​字符串转换为抽象路径名来创建新实例。
  File​(String parent, String child);    File根据父路径名字符串和子路径名字符串创建新实例。
  File​(URI uri);            File通过将给定file:URI转换为抽象路径名来创建新实例 。

二、字段

  static String pathSeparator 系统相关的路径分隔符。(Windows系统中path1;path2;)中的;分隔路径
  static char pathSeparatorChar 与系统有关的路径分隔符。
  static String separator 系统相关的默认名称分隔符。(Windows系统中c:\\)中的\\
  static char separatorChar 取决于系统的默认名称分隔符。

三、常见功能

获取文件名
  String getName();
  String getPath();//获取文件路径
  String getAbsolutePath();绝对路径
获取文件大小
  long length();//获取文件大小
获取目录空间大小
  long getFreeSpace();//空闲空间(常用)
  long getTotalSpace();//总空间
  long getUsableSpace();//可用空间
获取文件修改时间
  long lastModified();
创建
  boolean createNewFile();//创建文件,如果存在就创建,否则,就不创建
  static File createTempFile​(String prefix, String suffix) //使用给定的前缀和后缀生成其名称
 
创建目录
  boolean mkdir();//单级目录
  boolean mkdirs();//多级目录
删除
  boolean delete();//慎用可以删除文件或目录(目录中不能有文件或文件夹,)
  void deleteOnExit();//退出时,删除
判断
  boolean exists();//存在判断
  boolean isAbsolute();//绝对路径
  boolean isDirectory();//目录判断
  boolean isFile();//文件判断
  boolean isHidden();//隐藏判断
重命名
  boolean renameTo​(File dest);//有剪切功能效果
换取系统根目录集合
  static File[] listRoots()
其他:
  String[] list();//当前目录下的文件夹名称和文件(包含隐藏文件),必须是目录
  String[] list​(FilenameFilter filter);//过滤器(后缀名:name.endsWith(".java"))

例子深度遍历文件夹:

 1 public static void main(String[] args) {
 2     File dir=new File("目录");
 3     getListAll(dir,0);
 4     }
 5 
 6     private static void getListAll(File dir,int level) {
 7     System.out.println(getSpace(level)+dir.getName());
 8     File[] list=dir.listFiles();
 9     level++;
10     for(File f:list) {
11         if(f.isDirectory()) {
12         getListAll(f,level);
13         }else {
14         System.out.println(getSpace(level)+f.getName());
15         }        
16     }
17     }
18 
19     private static String getSpace(int level) {
20     StringBuilder sb=new StringBuilder();
21     sb.append("|--");
22     for(int i=0;i<level;i++) {
23         sb.insert(0, " ");
24     }
25     return sb.toString();
26     }

猜你喜欢

转载自www.cnblogs.com/WarBlog/p/12133462.html