一、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結尾的檔案;
package org.exam5a;
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);
}
}
}