java.io.FilenameFilter檔名過濾器總結
阿新 • • 發佈:2019-01-24
一、FilenameFilter介紹
java.io.FilenameFilter 是檔名過濾器,用來過濾不符合規格的檔名,並返回合格的檔案;
一般地:
1、String[] fs = f.list();
2、File[] fs = f.listFiles();
這兩個方法返回 f 下的所有檔案或目錄;
FilenameFilter用來把符合要求的檔案或目錄返回;
因此可以呼叫:
1、String [] fs = f.list(FilenameFilter filter);;
2、File[] fs = f.listFiles(FilenameFilter filter);
二、檔名過濾器一般用法
1.實現FilenameFilter介面;
2.實現boolean accept(File dir,String name); //dir表示檔案的當前目錄,name表示檔名;
class MyFilter implements FilenameFilter{
private String type; //type為需要過濾的條件,比如如果type=".jpg",則只能返回字尾為jpg的檔案
public MyFilter(String type){
this.type = type;
}
public boolean accept(File dir,String name){ //返回true的檔案則合格
}
}
三、例項
要求:返回當前目錄下所有以.java結尾的檔案;
import java.io.File; import java.io.FilenameFilter; public class T4 { public static void main(String[] args)throws Exception { File f = new File("."); MyFilter filter = new MyFilter(".java"); 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); } } }