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 }