深入探索Java File类:高效遍历目录中的每一个子项

发布于:2024-08-26 ⋅ 阅读:(38) ⋅ 点赞:(0)

今天我接着来介绍File类中访问目录中每一个子项的方法

基础语法

首先我们先来判断文件或者目录是否存在

1、boolean isFile()

判断当前File对象表示的是否为一个实际存在的文件

 

2、boolean isDirectory()

判断当前File对象表示的是否为一个实际存在的目录(文件夹)

3、File[ ] listFiles()

获取当前File对象表示的目录中的所有子项.

返回一个File数组,数组中每个元素(一个File对象)表示该目录 中的一个子项


        //访问当前目录中的所有子项
        File file = new File(".");
        if (file.isDirectory()) {
            File[] file1 = file.listFiles();
            for (File file2 : file1) {
                System.out.println(file2);
            }
        }

代码实例 

    public static void main(String[] args) throws IOException {
        File file = new File("./demo.txt");
        file.createNewFile();
        //获取当前目录下的所有文本文件(txt)
        File dir = new File(".");
        if (dir.isDirectory()) {
            FileFilter fileFilter = f -> f.getName().endsWith("txt");
            File[] files = dir.listFiles(fileFilter);
            for (File f : files) {
                System.out.println(f);
            }
        }
    }

实践代码 

 获取当前项目目录下所有名字以"."开始的目录

    public static void main(String[] args) {
        File dir = new File(".");
        if (dir.isDirectory()) {
            File[] file = dir.listFiles(f -> f.getName().startsWith("."));
            for(File f:file){
                System.out.println(f);
            }
        }
    }

 查找文件目录下的文件

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你要查找的目录");
        String name = scanner.nextLine();
        File dir = new File(name);
        if (dir.isDirectory()) {
            System.out.println("请输入你要查找的文件后缀");
            String ext = scanner.nextLine();
            File[] files = dir.listFiles(f -> f.getName().endsWith(ext));
            for(File s:files){
                System.out.println(s.getName());
            }
        } else {
            System.out.println("不是一个目录.或者目录不存在");
        }
    }

 

 


 

 

 




网站公告

今日签到

点亮在社区的每一天
去签到