遍历文件改进

匿名类

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

public class Demo02Filter {
    public static void main(String[] args) {
        File file =new File("F:\basic\untitled12\src\it\cast\day14");
        getAllFile(file);
    }



    private static void getAllFile(File dir) {//可以使用匿名内部类

       /* File[] files=dir.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {//过滤规则
                return pathname.isDirectory()||pathname.getName().toLowerCase().endsWith(".java");
            }
        });//传递过滤器对象*/

       File[] files=dir.listFiles(new FilenameFilter() {
           @Override
           public boolean accept(File dar, String name) {
               return new File(dar,name).isDirectory()||name.toLowerCase().endsWith(".java");
           }
       });




        for (File f : files) {
            if (f.isDirectory()){
                getAllFile(f);
            }
            else {
                System.out.println(f);
            }
        }

    }
}
import java.io.File;

public class Demo01Filter {
    public static void main(String[] args) {
        File file =new File("F:\basic\untitled12\src\it\cast\day14");
        getAllFile(file);
    }

    private static void getAllFile(File dir) {

        File[] files=dir.listFiles(new FileFilerImpl());//传递过滤器对象
        for (File f : files) {
            if (f.isDirectory()){
                getAllFile(f);
            }
            else {
                System.out.println(f);
            }
        }

    }
}
import java.io.File;
import java.io.FileFilter;

//创建过滤器File Filter的实现类,重写过滤方法accept,定义过滤规则
public class FileFilerImpl implements FileFilter {
    @Override
    public boolean accept(File file) {
        if (file.isDirectory()){
            return true;
        }
        return file.getName().toLowerCase().endsWith(".java");
    }
}
原文地址:https://www.cnblogs.com/cy2268540857/p/13770273.html