FileFilter过滤器

Posted wmqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FileFilter过滤器相关的知识,希望对你有一定的参考价值。

FileFilter过滤器原理:

File对象的listFiles()方法做了三件事情:

第一件,遍历得到所有的文件/文件夹;

第二件,调用入参过滤器接口自己DIY的实现类中重写的accept()方法;

第三件,将遍历得到的文件/文件夹当入参传入accept()方法;

技术图片

DIY的FileFilter接口的实现类:

技术图片

其中,过滤要最开始创建File对象时候,是个c://abc文件夹的路径;然后从这个文件夹目录下开始遍历;

主程序调用的地方:

技术图片

 使用匿名内部类简化代码:

技术图片

其中,FileFilter接口的实现类只使用了一次,所以可以使用匿名内部类的写法简化代码;

写成FilenameFilter接口给过滤器的方式:

技术图片

其中,FilenameFilter接口的源码:

技术图片

可以看出,只含有一个抽象方法(没有方法体,没有方法体的花括号)

所以可以使用Lambda表达式写法优化这两个接口的写法(接口中只有一个抽象方法):

技术图片

() -> {}  即参数列表括号,箭头指向方法体的花括号写法;

简化Lambda表达式写法(方法体花括号中代码只有一行):

技术图片

其中,简化了内容有:去掉了参数列表中参数的类型,方法体的花括号和return关键字;

 

最后高级到亲妈认不出的写法(了解了解。。):

技术图片

 

以上是关于FileFilter过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Java File类中FileFilter过滤器的使用方法

是否有解决方法:FileFilter 在 Windows 中不起作用?

FileFilter

FileFilter 2

multer 上的 fileFilter 仍然允许所有文件类型

简单的 JFileChooser FileFilter 不起作用