34 java 文件过滤 FileFilter
package com.da.tool.util; import org.apache.commons.io.filefilter.RegexFileFilter; import java.io.File; import java.io.FileFilter; import java.io.FilenameFilter; /** * java 的 FileFilter和FilenameFilter测试使用 */ public class FileFilterExample { /** * 通过文件后缀过滤文件(仅查询后缀) * 功能可扩展点 * 1、可针对文件、目录进行按照类型进行查找,实现特有的逻辑 * 2、可根据此功能抽象一个借口,采用不同实现,进行不同场景的文件过滤 * 3、对于复杂场景的文件过滤 * 4、nameSuffix可定义为多个 */ static class FileFilterByNameSuffix implements FileFilter{ private String nameSuffix; public FileFilterByNameSuffix(String nameSuffix) { this.nameSuffix = nameSuffix; } @Override public boolean accept(File file) { Boolean accept = false; if(file.getName().endsWith(nameSuffix)){ accept = true; } return accept; } } /** * 通过文件后缀过滤文件 */ static class FileNameFilterByNameSuffix implements FilenameFilter{ private String nameSuffix; public FileNameFilterByNameSuffix(String nameSuffix) { this.nameSuffix = nameSuffix; } @Override public boolean accept(File dir, String name) { return name.endsWith(nameSuffix); } } public static void main(String[] args) { String path ="D:\\project\\da-tool\\src\\main\\java\\com\\da\\tool\\util"; File file = new File(path); //1、实现FileFilter File [] files =file.listFiles(new FileFilterByNameSuffix(".java")); for (File file1 : files) { System.out.println(file1.getPath()); } //2、实现FilenameFilter files =file.listFiles(new FileNameFilterByNameSuffix(".java")); for (File file1 : files) { System.out.println(file1.getPath()); } //3、java提供正则过滤 files =file.listFiles((FileFilter) new RegexFileFilter(".*.java")); for (File file1 : files) { System.out.println(file1.getPath()); } //其他:PatternFilenameFilter JarFilter } }
本文来自博客园,作者:life_start,转载请注明原文链接:https://www.cnblogs.com/yangh2016/p/6519859.html