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

createh55个月前 (12-30)技术教程61


直奔主题,看代码实现


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 import以及Java类的搜索路径

如果你希望使用Java包中的类,就必须先使用import语句导入。import语句与C语言中的 #include 有些类似,语法为: import package1[.package2…].class...

java 代码里读取jar包下resources目录下的文件

简述java项目里,我们时常需要读取一些自定义的文件,我们一般也会把这些文件放在resources目录下,但有时候,我们在idea开发时明明是可以读取到文件的,一打包放到Linux或者Tomcat上运...

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

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

带你入门Java之每日3分钟Java——初识Java

在带你入门Java之IDEA的插件安装中,笔者初步介绍了IDEA的一些插件。有读者反馈,安装速度不是很行,其实这个问题不止存在于IDEA,同样在Eclipse中也是存在的。解决方法是在插件的实际下载地...

Java的绝对路径和相对路径(java的绝对路径和相对路径的区别)

这里要区分的是目录路径如: /opt/deve/tomcat/bin c:\deve\tomcat\bin都是绝对目录路径binbin/databin\data都是相对目录路径通过观察,发现规律以/开...