Java-IO流-按要求遍历出所需文件

package cn.bruce.file;

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

//对目录下的内容全遍历,找出所有.java结尾的文件
public class FileDemo4 {
    public static void main(String[] args) {
        fun(new File("E:\b"));
    }

    public static void fun(File dir) {
        // System.out.println(dir);
        // 调用listFiles方法对目录进行遍历
        File[] filearr = dir.listFiles(new Myjavafilter());
        for (File file : filearr)
        {
            if (file.isDirectory())
            {
                fun(file);// 判断如果是文件夹就继续调用遍历目录下内容的方法,形成递归
            } else
            {
                System.out.println(file);// 不是的话就打印出来文件路径名字
            }
        }
    }
}

// 自定义过滤器,实现filefilter接口,重写抽象方法
class Myjavafilter implements FileFilter {
    public boolean accept(File pathname) {
        // pathname接受到的是传入的全路径
        // 然后取的文件的结尾后缀pathname.getname();
        if (pathname.isDirectory())
        {
            return true;// 目录的话不去判断后缀
        }
        // 判断字符串是不是.java结尾,不区分大小写
        return pathname.getName().toLowerCase().endsWith(".java");
    }
}

原文地址:https://www.cnblogs.com/BruceKing/p/13535678.html