FileFilter
java FileFilter
FileFilter与它的前身FilenameFilter唯一不同的是,FileFilter提供文件对象的访问方法。而FilenameFilter是按照目录和文件名的方式来工作的。
FileFilter
boolean accept(File file)
FilenameFilter
boolean accept(File directory, String name)
一个简单的例子,搜索特定的文件扩展名。可以使用FilenameFilter,但出来的结果会让你难以判断到底是文件夹还是文件。要解决这个问题,需要使用文件对象,也就是FileFilter。
文件名过滤的一般方法
FilenameFilter
1、实现FilenameFilter接口;
2、实现boolean accept(File dir, String name); //directory 表示当前目录,name表示文件名
class fileFilter implements FilenameFilter{
private String type; //需要过滤的条件,比如type=“.txt”,则结果只返回后缀为jpg的文件
public fileFilter(String type){
this.type=type;
}
public boolean accept(File directory, String name){
}
FilenameFilter
实例
import java.io.File;
import java.io.FilenameFilter;
public class fileFilter{
public static void main(String[] args)throws Exception {
File f = new File("E:/");
MyFilter filter = new MyFilter(".txt");
String[] files = f.list(filter);
for(String a:files){
System.out.println(a);
}
}
static class MyFilter implements FilenameFilter{
private String type;
public MyFilter(String type){
this.type = type;
}
public boolean accept(File dir,String name){
return name.endsWith(type);
}
}
}
FileFilter
import java.io.File;
import java.io.FileFilter;
public class fileFilter{
public static void main(String[] args)throws Exception {
File f = new File("E:/");
MyFilter filter = new MyFilter(".txt");
String[] files = f.listFiles(filter);
for(String a:files){
System.out.println(a);
}
}
private static class MyFilter implements FileFilter{
private String type;
public MyFilter(String type){
this.type = type;
}
public boolean accept(File file){
return name.endsWith(type);
}
}
}
未完待续。。。