Java遍历目录文件,一个while循环即可

createh54个月前 (12-30)技术教程43


直奔主题,看代码实现


public static void main(String[] args) {

    File dir = new File("/home/user"); //需要遍历的系统目录
    if( !dir.exists() ) return; //目录不存在

    Queue<File> cache = new LinkedList<>(); //创建临时队列 - 保存需要处理的目录
    cache.offer(dir);
    while( (dir = cache.poll() ) != null) {
        File[] files = dir.listFiles();
        for( File file : files ) {
            if( file.isFile() ) {
                System.out.println("文件:" + file.getAbsolutePath());
                    //TODO 业务逻辑
                } else {
                    System.out.println("目录: " + file.getAbsolutePath());
                    //TODO 业务逻辑

                    cache.offer(file); //放入对列中,等待处理
                }
           }
        }

    }


相比递归,有以下优点:

  • 占用内存少
  • 目录级别再多也没问题
  • 局部变量的引用能及时释放


记的『关注』我哦!

相关文章

Java 中获取文件路径的方式,你知道几种?

1. 前言Java 开发中我们经常要获取文件的路径,比如读取配置文件等等。今天我们就关于文件的路径和如何读取文件简单地探讨一下。2. 文件的路径文件的路径通常有 相对路径 与 绝对路径。2.1 相对路...

Java路径-37-Java的Iterator(java路径是什么意思)

1 Iterator的概念在Java中,如果我们需要遍历一个集合(Collection)或者数组(Array),我们通常会使用for循环来遍历。但是,当我们需要在遍历的过程中修改集合或者数组时,这种方...

我的世界Java路径设置攻略(我的世界java路径怎么设置)

我的世界Java路径设置攻略带给玩家,我的世界这款游戏在玩之前需要先设置Java路径,Java路径在哪,看看我的世界Java路径设置攻略。我的世界java路径设置攻略:1、首先我们要确保电脑中已经下载...

Java学习目录(thinking in java目录)

一、Java基础Java基础-继承Java基础-抽象Java基础-接口Java基础-多态Java基础-重写Java基础-匿名对象Java基础-内部类Java基础-final、static关键字Java...

Java性能测试利器:JMH入门与实践|得物技术

在软件开发中,性能测试是不可或缺的一环。但是编写基准测试来正确衡量大型应用程序的一小部分的性能却又非常困难。当基准测试单独执行组件时,JVM或底层硬件可能会对您的组件应用许多优化。当组件作为大型应用程...

Java 获取属性和环境变量的方法(java获取当前环境编码格式)

1.简介在Java应用程序中,Java将自动导入包java.lang, 包含从NullPointerException到Object,Math和String的许多常用类。java.lang.Syste...