45、檔案過濾器FilenameFilter
阿新 • • 發佈:2018-12-19
檔案過濾器FilenameFilter
JDK中提供了一個FilenameFilter的介面用來實現檔案過濾功能,可以使用這個檔案過濾器來實現上一節中的問題。
File類中有一個帶引數的list方法
public String[] list(FilenameFilter filter)
上面的方法中接收FilenameFilter物件,FilenameFilter是一個介面,裡面有一個方法
boolean accept(File dir, String name);
要想使用檔案過濾器的話需要重寫這個accept方法,在方法裡面編寫過濾條件,這裡接收兩個引數,dir就是當前呼叫這個list方法的File物件,name是這個方法的檔名。
下面是使用FilenameFilter來實現統計專案根目錄下以.txt結尾的檔案數量,並將檔名打印出來。
package com.sutaoyu.file; import java.io.File; import java.io.FilenameFilter; public class test_5 { public static void main(String[] args) { File file = new File("D:\\java\\Eclipse\\chapter-08\\files\\"); String[] nameArray= file.list(new FilenameFilter() { public boolean accept(File dir,String name) { //獲取根目錄下每個檔案的File物件 File file1 = new File(dir,name); //編寫篩選條件 return file1.isFile() && file1.getName().endsWith(".txt"); } }); System.out.println("以.txt結尾的檔案個數是" + nameArray.length + "個"); for(String name : nameArray){ System.out.println(name); } } }