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]);
else
System.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]);
else
System.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编程中,文件遍历和树的遍历是两种常见的操作,它们在处理数据结构和文件系统时显得尤为重要。本教程将详细讲解这两个主题,包括Java如何进行文件遍历,以及如何使用非递归方法实现树的前序、中序和后序遍历。...
在Java编程中,遍历文件夹和解析XML是两种常见的操作,它们在处理数据和构建应用程序时发挥着关键作用。这篇文档"java遍历文件夹解析XML.doc"可能详细介绍了如何使用Java进行这两个任务。 首先,让我们深入了解一下...
Java Bean遍历是获取并操作Bean对象属性的过程,而注解是现代Java中用于元数据的一种方式,可以给Bean的属性添加额外的信息或行为。 在给定的标题"Java Bean 遍历和使用注解给Bean的属性添加属性值"中,我们可以...
遍历文件通常有两种方式:一是使用`listFiles()`方法,它返回当前目录下的所有文件和子目录;二是使用`list()`方法,返回的是文件名列表,不包含路径信息。在遍历过程中,我们可以检查每个文件的扩展名或MIME类型,...
同时,递归遍历文件并不局限于Python,其他编程语言如Java、C++、JavaScript也有类似的方法实现这一功能。 总之,掌握递归遍历文件的方法对于任何IT从业者来说都是必备技能,它能够帮助我们有效地处理和管理文件...
以上就是使用Java遍历文件夹的基本知识,包括叶子节点、结点和遍历深度的概念,以及如何利用`java.io.File`类进行实际操作。在实际应用中,你可能需要根据项目需求进行适当的调整,例如添加错误处理、优化性能或者...
`LinkListFour.java`文件可能包含了上述链表遍历的一种或多种实现。根据文件名推测,它可能涉及了链表的第四种遍历方式,或者是对链表的第四种操作。具体实现需要查看源代码才能确定。 在实际应用中,链表遍历常...
本文将详细介绍两种使用Java进行文件夹遍历的方法:递归算法和非递归算法,并对这两种方法进行深入解析。 #### 1. 递归算法实现文件夹遍历 递归算法是一种非常直观且高效的遍历文件夹的方法。其基本思想是通过不断...
常见的图片压缩方法有两种:有损压缩和无损压缩。有损压缩,如JPEG,会通过去除人眼不易察觉的图像信息来降低质量,换取更高的压缩比;无损压缩,如PNG或GIF,不会丢失信息,但压缩比例通常较低。图片压缩算法包括...
在“基于java的图的实现(二) 图的两种遍历”这个主题中,我们将深入探讨如何使用Java来实现图的数据结构以及它的两种主要遍历方法:深度优先搜索(DFS)和广度优先搜索(BFS)。 首先,我们需要理解图的基本概念。...
首先,创建一个`Properties`对象,它是Java标准库提供的一种专门用来处理`.properties`文件的数据结构。这个对象将用于加载和存储文件中的键值对。 ```java Properties prop = new Properties(); ``` 3. **获取...
在Java编程中,多叉树是一种非线性数据结构,每个节点可以有多个子节点,与二叉树(每个节点最多有两个子节点)相比,它提供了更广泛的灵活性。本篇文章将深入探讨如何在Java中实现多叉树以及其遍历方法。 首先,...
另一种更现代的方法是Java 7引入的`Files.copy()`方法,它提供了复制文件的简便接口,可以处理权限、原子性等问题。 4. **控制台输出**:在程序运行过程中,使用`System.out.println()`方法可以在控制台上打印...
为了高效地与HDFS交互,Java API 提供了一套丰富的工具和类库,使得开发者能够方便地进行文件的读写、上传、下载、遍历、查找、拷贝以及管理HDFS上的文件和目录。以下将详细讲解如何使用Java API 操作HDFS。 ### 一...
在提供的压缩包文件中,可能包含了这三个遍历方法的Java源代码,如`我的后序遍历java.txt`、`先序遍历java.txt`和`中序遍历java.txt`。这些文件应该分别实现了上述的后序、先序和中序遍历算法。通过阅读和理解这些...
在IT行业中,尤其是在企业自动化和数据处理领域,Java是一种常用的语言。本教程将重点讲解如何使用Apache POI库来读取Excel数据,并基于这些数据批量生成Word文档。Apache POI是一个开源项目,它允许Java开发者处理...
3. **遍历算法**:基本的遍历算法有两种,一种是深度优先搜索(DFS),另一种是广度优先搜索(BFS)。DFS先访问子目录,再访问当前目录的文件,而BFS则先访问所有当前目录的文件,再访问子目录。`os.walk()`在Python...
在遍历过程中,我们需要注意处理两种特殊的情况:`.`和`..`,它们分别代表当前目录和父目录,通常不包含实际的文件数据,可以根据需求选择是否跳过。 在C++中,可以这样实现遍历: ```cpp #include #include ...
此外,`binaryTree_console`可能是一个Java工程文件,用于运行和测试上述层序遍历的代码。通过控制台输出,用户可以直观地看到层序遍历的结果,验证代码的正确性。 总的来说,这个课程设计旨在让学生深入理解二叉树...