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

createh56个月前 (12-30)技术教程81


直奔主题,看代码实现


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获取文件路径(java如何获取文件路径)

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

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

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

这才是Java基础知识点的总结(java基础总结大全)

前言本文主要是我之前复习Java基础原理过程中写的Java基础学习总结。Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其底层...