java文件過濾器的使用

前言:

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

相關文章
相關標籤/搜索