`
caiying0504
  • 浏览: 341602 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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]);
            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如何进行文件遍历,以及如何使用非递归方法实现树的前序、中序和后序遍历。...

    java遍历文件夹解析XML.doc

    在Java编程中,遍历文件夹和解析XML是两种常见的操作,它们在处理数据和构建应用程序时发挥着关键作用。这篇文档"java遍历文件夹解析XML.doc"可能详细介绍了如何使用Java进行这两个任务。 首先,让我们深入了解一下...

    Java Bean 遍历和使用注解给Bean的属性添加属性值

    Java Bean遍历是获取并操作Bean对象属性的过程,而注解是现代Java中用于元数据的一种方式,可以给Bean的属性添加额外的信息或行为。 在给定的标题"Java Bean 遍历和使用注解给Bean的属性添加属性值"中,我们可以...

    android用遍历删除指定类型的文件

    遍历文件通常有两种方式:一是使用`listFiles()`方法,它返回当前目录下的所有文件和子目录;二是使用`list()`方法,返回的是文件名列表,不包含路径信息。在遍历过程中,我们可以检查每个文件的扩展名或MIME类型,...

    简单遍历文件,程序易懂

    同时,递归遍历文件并不局限于Python,其他编程语言如Java、C++、JavaScript也有类似的方法实现这一功能。 总之,掌握递归遍历文件的方法对于任何IT从业者来说都是必备技能,它能够帮助我们有效地处理和管理文件...

    java 遍历文件夹

    以上就是使用Java遍历文件夹的基本知识,包括叶子节点、结点和遍历深度的概念,以及如何利用`java.io.File`类进行实际操作。在实际应用中,你可能需要根据项目需求进行适当的调整,例如添加错误处理、优化性能或者...

    java 数据结构 遍历链表程序

    `LinkListFour.java`文件可能包含了上述链表遍历的一种或多种实现。根据文件名推测,它可能涉及了链表的第四种遍历方式,或者是对链表的第四种操作。具体实现需要查看源代码才能确定。 在实际应用中,链表遍历常...

    运用Java遍历文件夹的方法总结.doc

    本文将详细介绍两种使用Java进行文件夹遍历的方法:递归算法和非递归算法,并对这两种方法进行深入解析。 #### 1. 递归算法实现文件夹遍历 递归算法是一种非常直观且高效的遍历文件夹的方法。其基本思想是通过不断...

    图片的压缩截取和目录遍历.rar

    常见的图片压缩方法有两种:有损压缩和无损压缩。有损压缩,如JPEG,会通过去除人眼不易察觉的图像信息来降低质量,换取更高的压缩比;无损压缩,如PNG或GIF,不会丢失信息,但压缩比例通常较低。图片压缩算法包括...

    基于java的图的实现(二) 图的两种遍历

    在“基于java的图的实现(二) 图的两种遍历”这个主题中,我们将深入探讨如何使用Java来实现图的数据结构以及它的两种主要遍历方法:深度优先搜索(DFS)和广度优先搜索(BFS)。 首先,我们需要理解图的基本概念。...

    java遍历properties文件操作指南

    首先,创建一个`Properties`对象,它是Java标准库提供的一种专门用来处理`.properties`文件的数据结构。这个对象将用于加载和存储文件中的键值对。 ```java Properties prop = new Properties(); ``` 3. **获取...

    java多叉树的实现和遍历输出

    在Java编程中,多叉树是一种非线性数据结构,每个节点可以有多个子节点,与二叉树(每个节点最多有两个子节点)相比,它提供了更广泛的灵活性。本篇文章将深入探讨如何在Java中实现多叉树以及其遍历方法。 首先,...

    遍历文件夹中的路径复制目录文件.rar

    另一种更现代的方法是Java 7引入的`Files.copy()`方法,它提供了复制文件的简便接口,可以处理权限、原子性等问题。 4. **控制台输出**:在程序运行过程中,使用`System.out.println()`方法可以在控制台上打印...

    3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件

    为了高效地与HDFS交互,Java API 提供了一套丰富的工具和类库,使得开发者能够方便地进行文件的读写、上传、下载、遍历、查找、拷贝以及管理HDFS上的文件和目录。以下将详细讲解如何使用Java API 操作HDFS。 ### 一...

    遍历二叉树(java实现)

    在提供的压缩包文件中,可能包含了这三个遍历方法的Java源代码,如`我的后序遍历java.txt`、`先序遍历java.txt`和`中序遍历java.txt`。这些文件应该分别实现了上述的后序、先序和中序遍历算法。通过阅读和理解这些...

    Java通过POI读取Excel遍历数据,批量生成word文档

    在IT行业中,尤其是在企业自动化和数据处理领域,Java是一种常用的语言。本教程将重点讲解如何使用Apache POI库来读取Excel数据,并基于这些数据批量生成Word文档。Apache POI是一个开源项目,它允许Java开发者处理...

    如何遍历文件夹查找文件

    3. **遍历算法**:基本的遍历算法有两种,一种是深度优先搜索(DFS),另一种是广度优先搜索(BFS)。DFS先访问子目录,再访问当前目录的文件,而BFS则先访问所有当前目录的文件,再访问子目录。`os.walk()`在Python...

    遍历指定文件夹下所有文件

    在遍历过程中,我们需要注意处理两种特殊的情况:`.`和`..`,它们分别代表当前目录和父目录,通常不包含实际的文件数据,可以根据需求选择是否跳过。 在C++中,可以这样实现遍历: ```cpp #include #include ...

    二叉树 层序遍历 java实现 课程设计

    此外,`binaryTree_console`可能是一个Java工程文件,用于运行和测试上述层序遍历的代码。通过控制台输出,用户可以直观地看到层序遍历的结果,验证代码的正确性。 总的来说,这个课程设计旨在让学生深入理解二叉树...

Global site tag (gtag.js) - Google Analytics