zoukankan      html  css  js  c++  java
  • java中过滤查询文件

     需求,过滤出C盘demo目录下 所有以.java的文件不区分大小写

    通过实现FileFilter接口 定义过滤规则,然后将这个实现类对象传给ListFiles方法作为参数即可。

    使用递归方法实现

    package demo03;
    /**
      * 写一个实现FileFilter的类,定义过滤规则
      */
    import java.io.File;
    import java.io.FileFilter;
    
    public class MyFilter implements FileFilter {
    
        @Override
        public boolean accept(File pathname) {
            if(pathname.isDirectory())
                return true;
            return pathname.getName().toLowerCase().endsWith(".java");
        }
    
    }
    package demo03;
    
    import java.io.File;
    
    /*
     * 遍历目录,获取目录下的所有.java文件
     * 遍历多级目录,方法递归实现
     * 遍历的过程中,使用过滤器
     */
    public class FileDemo1 {
        public static void main(String[] args) {
            File file=new File("c:\demo");
            getAllJava(file);
        }
        
        /**
         * 定义方法,实现遍历指定目录
         * 获取目录中所有的.java文件
         */
        public static void getAllJava(File dir){
            //System.out.println(dir);
            //调用File对象方法listFiles()获取,加入过滤器
            File[] fileArr=dir.listFiles(new MyFilter());
            for(File f:fileArr){
                if(f.isDirectory()){
                    //递归进入文件夹遍历
                    getAllJava(f);                
                }else{
                    System.out.println(f);
                }
            }
        }
    }

  • 相关阅读:
    【PKUWC2018】Minimax
    Codeforces Round #673
    【BZOJ1901】Dynamic Rankings
    【笔记】树状数组
    【CF1420E】Battle Lemmings
    Codeforces Round #672
    Problem A: STL——灵活的线性表
    algorithm
    iterator
    TRY vector
  • 原文地址:https://www.cnblogs.com/benjamin77/p/9127362.html
Copyright © 2011-2022 走看看