前言:
java.io.FileFilter(過濾器接口)
boolean accept(File pathname)
File類提供了以下方法使用過濾器:
public File[] listFiles(FileFilter filter)java
代碼以下:ide
//過濾器類 class filter1 implements FileFilter{ @Override public boolean accept(File pathname) { // TODO Auto-generated method stub if(pathname.isFile()&&pathname.exists()){ String name = pathname.getName(); if(name.endsWith(".box")){ return true; } } return false; } } // listFiles帶參數的方法的大概原理 //public File[] listFiles(FileFilter filter){ //// 獲取指定目錄下全部文件或文件夾 // File[] all = listFiles(); // File temp; // for(int i = 0;i<all.length;i++){ // if(filter.accept[all[i]]){ // temp[j] = all[i]; // } // } // return temp; //} public class FilterUse { public static void main(String[] args) { // 文件過濾器的用法 File f = new File("D:\\dev-machine"); // 獲取指定目錄下的全部文件或者文件夾 File[] ffs = f.listFiles(new filter1()); // 篩選出後綴名爲.box的文件 for (File file : ffs) { System.out.println(file.getName()); } } }
其內部原理結構圖大概以下:spa