zoukankan      html  css  js  c++  java
  • 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
    
        }
    }
  • 相关阅读:
    项目管理
    智能硬件如何确定需求:场景约束
    产品设计
    产品设计之前,如何分析业务需求和用户痛点?
    微信小程序挑一挑辅助
    C#实现冲顶大会辅助工具(截图+图像识别+搜索)
    读取配置文件--AppConfig
    文件各种上传,离不开的表单
    使用C#委托来实现异步编程
    Table 组件构建过程中遇到的问题与解决思路
  • 原文地址:https://www.cnblogs.com/yangh2016/p/6519859.html
Copyright © 2011-2022 走看看