1. 程式人生 > >java.io.FilenameFilter檔名過濾器總結

java.io.FilenameFilter檔名過濾器總結

一、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);  
        }  
    }  
}