java中的FileFilter

listFiles的重载方法

1、File[] listFiles()

返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

2、File[] listFiles(FileFilter filter)

返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

接口: FileFilter  用于抽象路径名的过滤器。

方法 boolean accept(File pathname)测试指定抽象路径名是否应该包含在某个路径名列表中。

原理:

File对象调用listFiles(FileFilter filter)的过程中,listFiles做了3件事:

1、listFiles方法会对构造方法中传递的目录进行遍历,获取目录中的每一个文件/文件夹-->封装为File对象

2、listFiles方法会调用参数传递的过滤器中的方法accept

3、listFiles方法会把遍历得到的每一个File对象,传递到accept方法的参数pathname

FileFilter的实现类中,accept方法返回值事一个布尔值

返回true:把传递过来的File对象保存到File数组

返回false:不会把传递过来的File对象保存到File数组

3、File[] listFiles(FilenameFilter filter)

返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

接口:FilenameFilter 实现此接口的类实例可用于过滤器文件名

方法:boolean accept(File dir, String name)测试指定文件是否应该包含在某一文件列表中。

原理参照FileFilter

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容