前言:
java.io.FileFilter(过滤器接口)
boolean accept(File pathname)
File类提供了如下方法使用过滤器:
public File[] listFiles(FileFilter filter)
代码如下:
//过滤器类
class filter1 implements FileFilter{
@Override
public boolean accept(File pathname) {
// TODO Auto-generated method stub
if(pathname.isFile()&&pathname.exists()){
String name = pathname.getName();
if(name.endsWith(".box")){
return true;
}
}
return false;
}
}
// listFiles带参数的方法的大概原理
//public File[] listFiles(FileFilter filter){
获取指定目录下所有文件或文件夹
//File[] all = listFiles();
//File temp;
//for(int i = 0;i
//if(filter.accept[all[i]]){
//temp[j] = all[i];
//}
//}
//return temp;
//}
public class FilterUse {
public static void main(String[] args) {
//文件过滤器的用法
File f = new File("D:\\dev-machine");
//获取指定目录下的所有文件或者文件夹
File[] ffs = f.listFiles(new filter1());
//筛选出后缀名为.box的文件
for (File file : ffs) {
System.out.println(file.getName());
}
}
}
其内部原理结构图大概如下: