File、FileFilter
File 类
java.io.File
类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
构造方法
public File(String pathname)
:将给定的路径名字符串转换为抽象路径名来创建 File实例。public File(String parent, String child)
:parent + child = pathnamepublic File(File parent, String child)
:从父抽象路径名和子路径名字符串创建 File实例。
获取功能的方法
public String getAbsolutePath()
:返回此File的绝对路径名字符串。public String getPath()
:将此File转换为路径名字符串。public String getName()
:返回由此File表示的文件或目录的名称。public long length()
:返回由此File表示的文件的长度。 但是File对象表示目录,则返回值未指定。
判断功能的方法
public boolean exists()
:此File表示的文件或目录是否实际存在。public boolean isDirectory()
:此File表示的是否为目录。public boolean isFile()
:此File表示的是否为文件。
创建删除功能的方法
public boolean createNewFile()
:当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。public boolean delete()
:删除由此File表示的文件或目录。public boolean mkdir()
:创建由此File表示的目录。public boolean mkdirs()
:创建由此File表示的目录,包括任何必需但不存在的父目录。
目录遍历
public String[] list()
:返回一个String数组,表示该File目录中的所有子文件或目录。public File[] listFiles()
:返回一个File数组,表示该File目录中的所有的子文件或目录。
例子: 递归遍历目录
1 | private static void tree(File dir) { |
文件过滤器
java.io.FileFilter
函数式接口,是File的过滤器。
该接口中的方法:boolean accept(File pathname)
该接口的对象可以传递给File类的listFiles
方法。
listFiles(FileFilter)
方法- 对目录进行遍历,获取目录中的每一文件/文件夹,并将它们封装成File对象
- 调用形参FileFilter对象中的accept方法, 并传入遍历得到的每一个File对象
- accept方法返回true,则将该File对象放入File[]数组中。
例子: 找出指定目录下的所有.java文件
1 | private static void findJavaFile(File dir) { |