java递归读取目录下所有文件的方法

 更新时间:2018年02月07日 09:54:56   作者:超越创之星  
这篇文章主要为大家详细介绍了java递归读取目录下所有文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

java递归读取目录下的所有文件(包含子目录下的所有文件)大概思路如下:通过file.listFiles()方法获取目录下的所有文件(包含子目录下的所有文件),得到files[]数组,然后遍历得到的所有文件,通过isFile(文件)和isDirectory(文件夹)方法来判断读取的是文件还是文件夹,如果得到的是文件夹,就递归调用test()方法,如果得到的是文件,就将其加入fileList中,最后测试的时候遍历fileList下的所有文件,来验证读取数据的准确性。

package com.chaoyue.io.test; 
 
import java.io.File; 
import java.util.ArrayList; 
import java.util.List; 
 
/** 
 * 递归读取某个目录下的所有文件 
 * 
 * @author 超越 
 * @Date 2016年12月5日,下午4:04:59 
 * @motto 人在一起叫聚会,心在一起叫团队 
 * @Version 1.0 
 */ 
public class ReadFile { 
  private static void test(String fileDir) { 
    List<File> fileList = new ArrayList<File>(); 
    File file = new File(fileDir); 
    File[] files = file.listFiles();// 获取目录下的所有文件或文件夹 
    if (files == null) {// 如果目录为空,直接退出 
      return; 
    } 
    // 遍历,目录下的所有文件 
    for (File f : files) { 
      if (f.isFile()) { 
        fileList.add(f); 
      } else if (f.isDirectory()) { 
        System.out.println(f.getAbsolutePath()); 
        test(f.getAbsolutePath()); 
      } 
    } 
    for (File f1 : fileList) { 
      System.out.println(f1.getName()); 
    } 
  } 
 
  public static void main(String[] args) { 
    test("F:/apache-tomcat-7.0.57-windows-x64"); 
  } 
} 

本地目录下的文件结构如下

测试读取目录下的文件如下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java并发之Semaphore工具类r的全面解析

    Java并发之Semaphore工具类r的全面解析

    Semaphore 是 java.util.concurrent中非常有用的并发编程工具类,它通常被用于限制对某个资源或资源池的并发访问数量,下面我们就来深入了解一下Semaphore的具体使用吧
    2024-02-02
  • SpringBoot Starter自定义全局加解密组件的详细流程

    SpringBoot Starter自定义全局加解密组件的详细流程

    SpringBoot Starter作用将一组相关的依赖打包,简化项目的配置和初始化过程,通过特定的Starter开发者可以快速的实现特定功能模块的开发和扩展,本文给大家介绍了SpringBoot Starter自定义全局加解密组件的详细流程,需要的朋友可以参考下
    2024-02-02
  • struts2配置静态资源代码详解

    struts2配置静态资源代码详解

    这篇文章主要介绍了struts2配置静态资源的相关内容,文中涉及了具体代码介绍,需要的朋友可以参考下。
    2017-09-09
  • java一个数据整理的方法代码实例

    java一个数据整理的方法代码实例

    这篇文章主要介绍了java一个数据整理的方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • SpringBoot项目整合mybatis的方法步骤与实例

    SpringBoot项目整合mybatis的方法步骤与实例

    今天小编就为大家分享一篇关于SpringBoot项目整合mybatis的方法步骤与实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Mybatis映射文件根标签与子标签示例讲解

    Mybatis映射文件根标签与子标签示例讲解

    这篇文章主要介绍了Mybatis映射文件根标签与子标签,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • Springboot使用redis实现接口Api限流的实例

    Springboot使用redis实现接口Api限流的实例

    本文介绍的内容如题,就是利用redis实现接口的限流(某时间范围内,最大的访问次数),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • java如何完成输出语句实例详解

    java如何完成输出语句实例详解

    输入输出可以说是计算机的基本功能,下面这篇文章主要给大家介绍了关于java如何完成输出语句的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • 简述Java List去重五种方法

    简述Java List去重五种方法

    这篇文章主要介绍了简述Java List去重五种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 浅谈Hibernate中的三种数据状态(临时、持久、游离)

    浅谈Hibernate中的三种数据状态(临时、持久、游离)

    下面小编就为大家带来一篇浅谈Hibernate中的三种数据状态(临时、持久、游离)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论