如何深入理解File与IO流中的File基础原理与应用?

摘要:File构造方法: public File(String pathname){}	将字符串路径变成File对象 public File(String parent , String chlid){}将父级路径和子级路
File构造方法: public File(String pathname){} //将字符串路径变成File对象 public File(String parent , String chlid){}//将父级路径和子级路径进行拼接 public File(File parent , String child){} File的路径可以是不存在的 成员方法: 直接说注意点: length()只能用于判断文件大小,不能判断文件夹大小 getAbsoluate()会返回文件的绝对地址,而getPath()则会返回当时定义文件的路径,不管是用的相对路径,或者是:项目名/文件名 creatNewFile()只能用于创建文件,不能用于创建文件夹,如果不写后缀名会创建无后缀的文件,如果存在这个文件,返回false创建失败,但是如果没有找到对应的父路径,会报错(这个方法需要处理异常) Windows操作系统下,文件和文件夹的名称不能重复(包括后缀名) delete()方法会直接删除(不会经过回收站) 获取并遍历 listFiles获取该路径下的所有内容,并返回一个File数组 File f[]=v.listFiles(); 注意点: 当调用者File表示的路径不存在时,返回null 调用者File表示的是文件时,返回null 当调用者File表示空文件夹,返回长度为0的数组 调用者File内的隐藏文件夹依然会被获取到 其他: public static File[] listRoots()列出可用的系统根,其实也就是CD盘。需要注意的是它返回的是File类型的数组,不能直接输出打印,需要用for循环进行循环输出 public String[] list()类似于listFile()但是由于返回值是String类型,只获取名字 FilenameFilter filter是个文件名过滤器,在定义中是一个函数式接口,也就是说,可以写成内部类 import java.io.*; public class Test { public static void main(String[] args) { File file = new File("C:\Users\Lenovo\Desktop\WP"); String[] a = file.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(".txt"); } }); for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } } } FileFilter的使用和上面基本一致,只是重写方法的参数不同 package Java_test; import java.io.*; public class Test { public static void main(String[] args) { File file = new File("C:\Users\Lenovo\Desktop\WP"); File[] a = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { return pathname.isDirectory(); } }); for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } } }