java遍历文件夹的两种办法:

A. 不使用递归

import java.io.File;
import java.util.LinkedList;
public class FileSystem {public static void main(String[] args) {long a = System.currentTimeMillis();LinkedList list = new LinkedList();File dir = new File("c:\\java\\");File file[] = dir.listFiles();for (int i = 0; i < file.length; i++) {if (file[i].isDirectory())list.add(file[i]);elseSystem.out.println(file[i].getAbsolutePath());}File tmp;while (!list.isEmpty()) {tmp = list.removeFirst();if (tmp.isDirectory()) {file = tmp.listFiles();if (file == null)continue;for (int i = 0; i < file.length; i++) {if (file[i].isDirectory())list.add(file[i]);elseSystem.out.println(file[i].getAbsolutePath());}} else {System.out.println(tmp.getAbsolutePath());}}System.out.println(System.currentTimeMillis() - a);}
}

B. 使用递归

import java.io.File;
import java.util.ArrayList;
public class FileSystem1 {private static ArrayList filelist = new ArrayList(); public static void main(String[] args) {long a = System.currentTimeMillis();refreshFileList("c:\\java");System.out.println(System.currentTimeMillis() - a);}public static void refreshFileList(String strPath) { File dir = new File(strPath); File[] files = dir.listFiles(); if (files == null) return; for (int i = 0; i < files.length; i++) { if (files[i].isDirectory()) { refreshFileList(files[i].getAbsolutePath()); } else { String strFileName = files[i].getAbsolutePath().toLowerCase();System.out.println("---"+strFileName);filelist.add(files[i].getAbsolutePath());                    } } }
}

结论:经过测试,使用递归的方法B性能相对好一些。

Java中遍历文件夹的2种方法相关推荐

  1. Java中遍历Set集合的三种方法

    Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...

  2. Java中遍历Set集合的三种方法(实例代码)

    哈喽,欢迎来到小朱课堂,下面开始你的学习吧! Java中遍历Set集合的三种方法 废话不多说,直接上代码 1.迭代遍历: Set set = new HashSet(); Iterator it = ...

  3. linux18.04 英文文件夹,在Ubuntu 18.04 LTS中打开文件夹的6种方法

    在Ubuntu中打开文件夹是作为常规Ubuntu用户执行的基本任务之一.尽管有很多方法可以这样做,但是当访问系统上的文件夹时,我们都有选择的方式. 在本文中,我们将解释一些方法: 在文件管理器(Nau ...

  4. hadoop学习——在HDFS中创建文件夹的两种方法

    参考书籍:<Hadoop大数据技术开发实战> shell命令创建文件夹 启动hdfs,终端输入:start-dfs.sh 在hdfs中创建一个input文件夹: hadoop fs -mk ...

  5. 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇

    本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  6. java 中io的删除文件_总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇

    本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力. 为了方便大家理解,我特意制作了本文对应的视频:总结删除文件 ...

  7. java 自动删除文件夹权限_总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇...

    本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 如果您阅读完成,觉得此文对您有帮助,请给我点个赞,您的支持是我不竭的创作动力.为了方便大家理解,我特意制作了本文对应的视频:总结删除文件或 ...

  8. Java中遍历Map集合的5种方式总结

    这篇文章主要给大家介绍了关于Java中遍历Map集合的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 方式一 通过Map.keySet使用iterator遍历 ...

  9. 深入探讨:linux中遍历文件夹下的所有文件

    深入探讨:linux中遍历文件夹下的所有文件 http://www.jb51.net/article/37664.htm

最新文章

  1. python中间是什么意思_中间代码说明
  2. Atitit 常用sdk 模块 组织架构切分 规范与范例attilax总结
  3. JAVA 注解的基本原理
  4. Android 应用 之路 百度地图API使用(3)
  5. Enterprise search debugging via test report in AG3
  6. 异步解耦_如何使用异步生成器解耦业务逻辑
  7. 苹果3月新品发布会one more thing曝光:或许就是iPhone SE 2
  8. 织梦怎样调取mysql_如何实现dedecms外部数据库调用
  9. 解决win2003默认不能使用移动硬盘的问题
  10. c语言经典100例对考研有用吗,考研数学经验,没用算这学长输
  11. 电脑故障,usb驱动安装失败如何修复解决方案-驱动人生
  12. 3D建模:角色手办的制作流程,分分钟一个手办
  13. 仿微信通讯录的Demo----PinnedHeaderListView
  14. 记录MySQL数据库如何修改密码.
  15. UI 设计中的视觉无障碍设计
  16. 帕斯卡三角形题解(Python代码实现)
  17. 建筑施工技术【19】
  18. 基于python的国内外研究现状怎么写_(√)毕业论文指之国内外研究现状的写法与范文...
  19. 腾讯应用宝如何认领应用详情(超详细)
  20. 谷歌浏览器+WIN10系统兼容问题(谷歌浏览器64位崩溃问题)

热门文章

  1. Pytorch:神经网络工具箱nn
  2. dcmtk 3.6.0 error C1083: Cannot open include file: 'iostream.h' 解决办法
  3. Auto 和 Decltye 的区别
  4. 费尔德曼的百吉饼实验:人类的诚实程度其实超出你的想象!
  5. Linux 搭建SVN服务器
  6. 学习笔记 十八: kickstart
  7. 结合二维码打造安全的手机远程运维管理平台
  8. 学习笔记之软考数据库系统工程师教程(第一版)
  9. 关于生成静态页--终极解决方案
  10. VS2010开发应用程序读写注册表