FilenameFilter接口:是用于过滤文件的
要实现的是accept方法
实例代码:
1,匿名类实现FilenameFilter—–过滤指定类型文件
package File类过滤器;
import java.io.File;
import java.io.FilenameFilter;
public class Test {
public static void main(String[] args){
File file=new File("D:\练习");
File[] files=file.listFiles();
//过滤前所有文件信息
for(File file2:files){
System.out.println(file2);
}
//现在要求过滤.txt为后缀的文件
//使用匿名函数写过滤器
System.out.println();
System.out.println("过滤后的文件遍历结果:");
File[] files2=file.listFiles(new FilenameFilter() {
//想要保存的文件则,return true;反之return false
@Override
public boolean accept(File dir, String name) {
File[] files=dir.listFiles();
if(name.endsWith(".txt")){
return false;
}
return true;
}
});
for(File file2:files2){
System.out.println(file2);
}
}
}
运行结果
2,创建过滤类—-过滤文件夹
过滤类
package File类过滤器;
import java.io.File;
import java.io.FilenameFilter;
public class MyFilenameFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
//过滤文件夹
File file=new File(dir,name);
if(file.isDirectory()){
return false;
}
return true;
}
}
测试:
package File类过滤器;
import java.io.File;
public class Test2 {
public static void main(String[] args) {
File file=new File("D:\练习");
//过滤前所有文件
File[] files=file.listFiles();
for (File file2 : files) {
System.out.println(file2);
}
//过滤:文件夹,后的结果
System.out.println();
System.out.println("过滤:文件夹,后的结果:");
File[] files2=file.listFiles(new MyFilenameFilter());
for (File file2 : files2) {
System.out.println(file2);
}
}
}
运行结果: