File类
构造方法:
public File(String pathname)//将给定路径字符串转换成抽象路径名来创建新的File实例
public File(String parent, String child)//从父路径名字符串和子路径名字符串创建新的File实例
public File(File parent, String child)//从父抽象路径名和子路径字符串创建新的File实例
tips:
- 一个File对象代表硬盘中实际存在的一个文件或者目录
- 无论该路径下是否存在文件或目录,都不影响File对象的创建
常用方法
获取功能的方法
public String getAbsolutePath()//返回词File的绝对路径名字符串
public String geiPath()//将此File对象转换成路径名字符串
public String getName()//返回由此File表示的文件或目录的名称
public long length()//返回次File表示的文件的长度
注意:
- getName的源码就是getPath
- 文件夹的大小没有意义
判断功能的方法
public boolean exists()//此File表示的文件或目录是否实际存在
public boolean isDirectory()// 是否为目录
public boolean isFile()//是否为文件
删除功能的方法
public boolean creatNewFile()//当且仅当具有该名称的文件尚不存在时,创建一个新的空文件(默认抛出IoException)
public boolean delete() //删除目录或文件(必须File对象为空)
public boolean mkdir()//创建一个文件夹
public boolean mkdirs()//创建多级文件夹
目录的遍历
public String[] list()//返回一个字符串数组,表示该file目录中的所有子文件或目录(包含隐藏文件)
public File[] listFiles()//返回一个File数组,表示该file目录中的所有子文件或目录(包含隐藏文件)
注意:
调用listFiles方法的File对象,表示的必须是实际存在的目录,否则返回null,无法进行遍历。
文件过滤器优化
java.io.FileFilter
是一个接口,是File的过滤器。 该接口的对象可以传递给File类的listFiles(FileFilter)
作为参数, 接口中只有一个方法。
boolean accept(File pathname)
:测试pathname是否应该包含在当前File目录中,符合则返回true。
分析:
- 接口作为参数,需要传递子类对象,重写其中方法。我们选择匿名内部类方式,比较简单。
accept
方法,参数为File,表示当前File下所有的子文件和子目录。保留住则返回true,过滤掉则返回false。- 通过过滤器的作用,
listFiles(FileFilter)
返回的数组元素中,子文件对象都是符合条件的,可以直接打印。
``public interface FilenameFilter`:实现此接口的类实例可用于过滤器文件名。
boolean accept(File dir, String name)
测试指定文件是否应该包含在某一文件列表中。
-
参数:
dir
- 被找到的文件所在的目录。name
- 文件的名称。 -
返回:
当且仅当该名称应该包含在文件列表中时返回
true
;否则返回false