「创作开运礼」Java之FileNameFilter过滤器的使用
各位小伙伴们大家好,在之前的文章中小编介绍了Java之FileFilter过滤器的使用与及原理的简单介绍,这次小编要介绍的是ileNameFilter过滤器的使用。
在使用FileFilter过滤器的时候需要定义一个实现类,还有一种方法使用匿名内部类就可以了,代码如下:
public class Demo02Filter {
public static void main(String args[]) {
File file=new File("D:programmingCisco Packet Tracer");
getAllFile(file);
}
/*定义一个方法,参数传递File类型的目录
方法中对目录进行遍历*/
public static void getAllFile(File dir) {
//传递过滤器对象,使用匿名内部类
File[] files=dir.listFiles(new FileFilter() {
public boolean accept(File pathname) {
/*过滤规则,pathname是文件或者是.pkt结尾的文件返回true*/
return pathname.isDirectory()||pathname.getName().toLowerCase().endsWith(".pkt");
}
});
for(File f:files) {
//对遍历得到的File对象f进行判断,判断是否是文件夹
//getAllFile方法是传递文件夹,遍历文件夹的方法
//所以直接调用getAllFile方法即可:递归(自己调用自己)
if(f.isDirectory()) {
getAllFile(f);
}else {
System.out.println(f);
}
}
}
}
接下来,小编来讲一下FilenameFilter过滤器,代码如下:
import java.io.File;
import java.io.FilenameFilter;
public class Demo02Filter {
public static void main(String args[]) {
File file=new File("D:programmingCisco Packet Tracer");
getAllFile(file);
}
/*定义一个方法,参数传递File类型的目录
方法中对目录进行遍历*/
public static void getAllFile(File dir) {
File[] files=dir.listFiles(new FilenameFilter() {
/*dir是文件的目录,name是文件的名称*/
public boolean accept(File dir,String name) {
return new File(dir,name).isDirectory()||name.toLowerCase().endsWith(".pkt");
//将dir,name封装成一个File对象new File(dir,name)。
}
});
for(File f:files) {
//对遍历得到的File对象f进行判断,判断是否是文件夹
//getAllFile方法是传递文件夹,遍历文件夹的方法
//所以直接调用getAllFile方法即可:递归(自己调用自己)
if(f.isDirectory()) {
getAllFile(f);
}else {
System.out.println(f);
}
}
}
}
关于FileNameFilter过滤器的使用,小编就说到这里,其实这个主要运用了匿名内部类Java之匿名内部类方式实现多线程的创建,还可以用Lambda表达式Java之Runnable表达式的简单介绍对代码进行优化,小编就不多说了,大家自己可以去尝试一下,希望这篇文章可以帮到大家,也欢迎各位小伙伴补充和纠错。
图片来自网络,如有侵权,请联系作者删除