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 实现前后端离实战教程,需要的朋友可以参考下2024-01-01
spring @Scheduled定时任务注解使用方法及注意事项小结
Spring的@Scheduled注解用于定时任务调度,默认单线程依次执行,可以通过配置多线程调度器或使用@Async注解实现并行执行,常见参数包括cron、fixedRate、fixedDelay、initialDelay等,本文介绍spring @Scheduled定时任务注解使用方法,感兴趣的朋友一起看看吧2025-02-02
java:程序包javax.servlet.http不存在问题解决
这篇文章主要给大家介绍了关于java:程序包javax.servlet.http不存在问题解决的相关资料,如果引用的包依赖的库文件缺失或版本不匹配,就会导致"Java 程序包不存在"的错误,需要的朋友可以参考下2023-10-10
Spring MVC+MyBatis+MySQL实现分页功能实例
分页功能是我们日常开发中经常会遇到的,下面这篇文章主要给大家介绍了Spring MVC+MyBatis+MySQL实现分页功能的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-06-06
Java输出通过InetAddress获得的IP地址数组详细解析
由于byte被认为是unsigned byte,所以最高位的1将会被解释为符号位,另外Java中存储是按照补码存储,所以1000 0111会被认为是补码形式,转换成原码便是1111 0001,转换成十进制数便是-1212013-09-09
SpringBoot集成Redis及SpringCache缓存管理示例详解
本文介绍了如何在SpringBoot中集成Redis并使用SpringCache进行缓存管理,详解了Redis的配置、使用以及SpringCache的注解,还阐述了SpringCache的工作原理,包括其AOP实现和与各种缓存框架的集成,使得开发者可以轻松实现缓存功能,以提高应用性能2024-09-09


最新评论