广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >【Java入门】使用Java实现文件夹的遍历
  • 831
分享到

【Java入门】使用Java实现文件夹的遍历

算法数据结构Poweredby金山文档 2023-09-14 20:09:30 831人浏览 薄情痞子
摘要

遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些! 一、使用递归遍历文件夹 整体思路 1、使用File封装初始目录

遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!


一、使用递归遍历文件夹

  • 整体思路

1、使用File封装初始目录,

2、打印这个目录

3、获取这个目录下所有的子文件和子目录的数组

4、遍历这个数组,取出每个File对象

4-1、如果File是否是一个文件,打印

4-2、否则就是一个目录,递归调用

  • 代码实现

public class SearchFile {    public static void main(String[] args) {        //初始目录        File dir = new File("d:/Dev");        Date beginDate = new Date();        SimpleDateFORMat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String beginDateStr = simpleDateFormat.format(beginDate);        System.out.println("开始时间:" + beginDateStr);        printDirByRecursive(dir,0);        //searchDir(dir);        Date endDate = new Date();        String endDateStr = simpleDateFormat.format(endDate);        System.out.println("结束时间:" + endDateStr);    }        public static void printDirByRecursive(File dir,int level) {        System.out.println(dir.getAbsolutePath());        //输出层次数        for (int i = 0; i < level; i++) {            System.out.print("-");        }        //获取这个目录下所有的子文件和子目录的数组。        File[] files = dir.listFiles();        //遍历这个数组,取出每个File对象        if (files != null) {            for (File f : files) {                //判断这个File是否是一个文件,是:                if (f.isFile()) {                    System.out.println(f);                } else {//否则就是一个目录,继续递归                    //递归调用                    printDirByRecursive(f,level+1);                }            }        }    }}
  • 运行结果:

这种实现方式的核心就是每个目录都会调用printDirByRecursive()方法,而printDirByRecursive()方法针对每个目录的工作都是一样的:打印目录、获取目录下所偶有的子文件和子目录的数组、遍历数组......从而形成了递归调用。

由于递归需要再次调用方法,导致方法入栈,从而降低程序的执行效率!

二、非递归遍历文件夹

  • 整体思路

1、使用File封装初始目录。

2、定义一个集合,用于存储"一个目录下所有的子文件和子目录的File对象"。

3、集合中先添加"初始目录"。

4、循环(集合非空)

4-1、 取出,并删除集合中的索引为0的"File对象"(此File对象可能是文件,也可能是目录)

4-2、打印这个File对象。

4-3、如果此File对象是"目录", 获取此目录下所有子文件和子目录的File数组,并添加到这个集合 的前面

循环结束

使用循环,每次将目录的File对象添加到集合,然后再取出,删除。再获取这个目录下所有的子目录和子文件的数组,并添加到集合,然后再循环。最终直至把所有文件都取出,并删除,打印,集合为空,结束循环。

  • 代码实现

package com.example.demo;import java.io.File;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Arrays;import java.util.Date;import java.util.List;public class SearchFile {    public static void main(String[] args) {        //初始目录        File dir = new File("d:/Dev");        Date beginDate = new Date();        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String beginDateStr = simpleDateFormat.format(beginDate);        System.out.println("开始时间:" + beginDateStr);        //printDirByRecursive(dir,0);        printDir(dir);        Date endDate = new Date();        String endDateStr = simpleDateFormat.format(endDate);        System.out.println("结束时间:" + endDateStr);    }        public static void printDir(File dir) {        //定义集合        List list = new ArrayList<>();        //将参数dir对象添加到集合        list.add(dir);        //循环,条件:集合非空        while (!list.isEmpty()) {            //取出,并删除集合的第一个File对象            File file = list.remove(0);            //打印这个File对象            System.out.println(file.getAbsoluteFile());            //如果此File对象是一个目录            if (file.isDirectory()) {                //获取此File对象下所有子文件和子目录的数组,并添加到集合的前面                list.addAll(0, Arrays.asList(file.listFiles()));            }            //继续下一次循环......        }    }}
  • 运行结果

这种方式仅仅用到了集合,没有使用递归,所以占用系统资源较小,效率比较高!

来源地址:https://blog.csdn.net/yubao0723/article/details/128638238

--结束END--

本文标题: 【Java入门】使用Java实现文件夹的遍历

本文链接: https://www.lsjlt.com/news/407690.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【Java入门】使用Java实现文件夹的遍历
    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些! 一、使用递归遍历文件夹 整体思路 1、使用File封装初始目录...
    99+
    2023-09-14
    算法 数据结构 Powered by 金山文档
  • java怎么遍历文件夹中的文件
    在Java中,可以使用递归或者循环来遍历文件夹中的文件。下面是两种常见的方法:1. 递归方法:```javaimport java....
    99+
    2023-10-09
    java
  • java怎么遍历文件夹内的所有文件
    可以使用递归来遍历文件夹内的所有文件。以下是一个示例代码: import java.io.File; public class F...
    99+
    2023-10-26
    java
  • 使用Python遍历文件夹实现查找指定文件夹
    目录1. 文件夹结构2. 查找指定文件夹下指定文件3. 查找指定文件夹下所有相同名称的文件4. 查找指定文件夹下所有相同后缀名的文件1. 文件夹结构 指定文件夹:E:/Code/Py...
    99+
    2022-11-11
  • 在Java如何使用File类实现遍历文件
    本篇文章为大家展示了在Java如何使用File类实现遍历文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 构造函数File(String args0)//使用一个表示文件或目录的路径的字符串创...
    99+
    2023-05-31
    java file 遍历
  • Node.js 使用递归实现遍历文件夹中所有文件
    如标题所示,遍历文件夹下的所有文件,主要功能如下: 传入一个路径,读取路径里面所有的文件 遍历读取的文件,判断当前文件是文件还是文件夹 当前目录为文件,打印出当前文件绝对路径 当前目录为文件夹,获取文件夹路...
    99+
    2022-06-04
    递归 文件 遍历
  • Python实现遍历包含大量文件的文件夹
    在处理大模型的训练数据时,经常需要遍历大型文件夹,其中,可能包括数千万或数亿个文件,这时,一般的Python遍历函数就会非常慢,例如os.walk、glob、path.rglob等等...
    99+
    2023-05-15
    Python实现遍历文件夹 Python遍历文件夹 Python 文件夹
  • Python遍历文件夹和读写文件的实现代码
    需 求 分 析 1、读取指定目录下的所有文件 2、读取指定文件,输出文件内容 3、创建一个文件并保存到指定目录 实 现 过 程   Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用...
    99+
    2022-06-04
    遍历 文件夹 代码
  • Python遍历文件夹和读写文件的实现方法
    需 求 分 析 1、读取指定目录下的所有文件 2、读取指定文件,输出文件内容 3、创建一个文件并保存到指定目录 实 现 过 程 Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Ja...
    99+
    2022-06-04
    遍历 文件夹 文件
  • Python怎么实现遍历包含大量文件的文件夹
    本篇内容主要讲解“Python怎么实现遍历包含大量文件的文件夹”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现遍历包含大量文件的文件夹”吧!在处理大模型的训练数据时,经常需要遍...
    99+
    2023-07-06
  • R语言如何使用list.files遍历文件夹中的文件
    这篇文章主要为大家展示了“R语言如何使用list.files遍历文件夹中的文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“R语言如何使用list.files遍...
    99+
    2022-10-19
  • c++下使用windows api遍历指定文件夹及其子文件夹中的文件
    以下代码在vs2008中测试通过,利用FindFirstFile,FindNextFile函数遍历了我电脑上全路径为“C:\\Users\\v_tianboli\\Desktop\\...
    99+
    2022-11-12
  • 使用 Python 实现文件递归遍历的
    今天有个脚本需要遍历获取某指定文件夹下面的所有文件,我记得很早前也实现过文件遍历和目录遍历的功能,于是找来看一看,嘿,不看不知道,看了吓一跳,原来之前我竟然用了这么搓的实现。 先发出来看看: def getallfiles(dir): ""...
    99+
    2023-01-31
    递归 遍历 文件
  • 使用shell脚本怎么遍历文件夹内所有的文件
    这期内容当中小编将会给大家带来有关使用shell脚本怎么遍历文件夹内所有的文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.这里写一个函数,实现对文件夹内所有文件名的读取,采用的方法是递归!#!/bi...
    99+
    2023-06-09
  • c++下怎么使用windows api遍历指定文件夹及其子文件夹中的文件
    这篇文章主要介绍“c++下怎么使用windows api遍历指定文件夹及其子文件夹中的文件”,在日常操作中,相信很多人在c++下怎么使用windows api遍历指定文件夹及其子文件夹中的文件问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-06-20
  • Java实现文件及文件夹的删除
    本文实例为大家分享了Java实现文件及文件夹的删除,供大家参考,具体内容如下 1、删除单个文件 public static boolean deleteFile(String fil...
    99+
    2022-11-13
  • java实现遍历某个目录(包括子目录)下的所有文件
    在java中遍历一个文件夹里边的所有文件,可以有两种方式: 一、递归遍历通常也是开发者第一时间能想到的方法。递归遍历的优点是:实现起来相对简单,代码量相对较少,执行效率较高。缺点是:比较吃内存,对硬件要求较高。在线视频教程分享:java在线...
    99+
    2017-01-17
    java教程 java 遍历 目录 所有文件
  • 如何使用JAVA实现二维数组遍历求和
    这篇文章将为大家详细讲解有关如何使用JAVA实现二维数组遍历求和,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。public class ArrayArrayDemo_3{ &...
    99+
    2023-06-02
  • node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
    node.js版 遍历文件夹下最大的文件,并输出路径,大小 实现代码: function findmax(basepath){ //只能执行一次 if(findmax.s) r...
    99+
    2022-06-04
    遍历 文件夹 路径
  • Java的IO流实现文件和文件夹的复制
    本文实例为大家分享了Java的IO流实现文件和文件夹复制的具体代码,供大家参考,具体内容如下 1、使用文件流对单个文件进行复制 将某个文件复制到指定的路径下: //复制文件 publ...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作