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"); 
  } 
} 

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

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

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

相关文章

  • springboot+springsecurity+mybatis+JWT+Redis 实现前后端离实战教程

    springboot+springsecurity+mybatis+JWT+Redis 实现前后端离实战教程

    这篇文章主要介绍了springboot+springsecurity+mybatis+JWT+Redis 实现前后端离实战教程,需要的朋友可以参考下
    2024-01-01
  • Java实现差分数组的示例详解

    Java实现差分数组的示例详解

    差分数组是由原数组进化而来,值为原数组当前位置值减去上一个位置的值。本文将通过例题详解如何利用Java实现差分数组,需要的可以参考一下
    2022-06-06
  • spring @Scheduled定时任务注解使用方法及注意事项小结

    spring @Scheduled定时任务注解使用方法及注意事项小结

    Spring的@Scheduled注解用于定时任务调度,默认单线程依次执行,可以通过配置多线程调度器或使用@Async注解实现并行执行,常见参数包括cron、fixedRate、fixedDelay、initialDelay等,本文介绍spring @Scheduled定时任务注解使用方法,感兴趣的朋友一起看看吧
    2025-02-02
  • Idea中springboot项目的热部署无法生效问题解决

    Idea中springboot项目的热部署无法生效问题解决

    本文主要介绍了Idea中springboot项目的热部署无法生效问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • java:程序包javax.servlet.http不存在问题解决

    java:程序包javax.servlet.http不存在问题解决

    这篇文章主要给大家介绍了关于java:程序包javax.servlet.http不存在问题解决的相关资料,如果引用的包依赖的库文件缺失或版本不匹配,就会导致"Java 程序包不存在"的错误,需要的朋友可以参考下
    2023-10-10
  • Spring MVC+MyBatis+MySQL实现分页功能实例

    Spring MVC+MyBatis+MySQL实现分页功能实例

    分页功能是我们日常开发中经常会遇到的,下面这篇文章主要给大家介绍了Spring MVC+MyBatis+MySQL实现分页功能的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Java 在PDF中添加页面跳转按钮功能(代码演示)

    Java 在PDF中添加页面跳转按钮功能(代码演示)

    这篇文章主要介绍了Java 在PDF中添加页面跳转按钮功能,本文给大家提供了多种功能的按钮,需要的朋友可以参考下
    2019-11-11
  • Java输出通过InetAddress获得的IP地址数组详细解析

    Java输出通过InetAddress获得的IP地址数组详细解析

    由于byte被认为是unsigned byte,所以最高位的1将会被解释为符号位,另外Java中存储是按照补码存储,所以1000 0111会被认为是补码形式,转换成原码便是1111 0001,转换成十进制数便是-121
    2013-09-09
  • Java操作redis设置第二天凌晨过期的解决方案

    Java操作redis设置第二天凌晨过期的解决方案

    这篇文章主要介绍了Java操作redis设置第二天凌晨过期的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • SpringBoot集成Redis及SpringCache缓存管理示例详解

    SpringBoot集成Redis及SpringCache缓存管理示例详解

    本文介绍了如何在SpringBoot中集成Redis并使用SpringCache进行缓存管理,详解了Redis的配置、使用以及SpringCache的注解,还阐述了SpringCache的工作原理,包括其AOP实现和与各种缓存框架的集成,使得开发者可以轻松实现缓存功能,以提高应用性能
    2024-09-09

最新评论