java递归读取文件_Java递归读取文件路径下所有文件名称并保存为Txt文档

该博客介绍了如何使用Java递归遍历指定路径下的所有文件,收集文件名并将其保存到TXT文档中。通过提供的`readFiles1`方法,程序能够处理目录及子目录中的文件,并利用`outputToTxt`方法将结果追加写入TXT文件。在测试中,程序成功读取了包含1086个对象和10个子目录txt文件的路径,并将所有文件名写入了TXT文件。
摘要由CSDN通过智能技术生成

本文用递归的方法实现读取一个路径下面的所有文件并将文件名称保存到Txt文件中,亲测可用。

递归读取文件路径下的所有文件:

/**

* 递归读取文件路径下的所有文件

*

* @param path

* @param fileNameList

* @return

*/

public static ArrayList readFiles1(String path, ArrayList fileNameList) {

File file = new File(path);

if (file.isDirectory()) {

File[] files = file.listFiles();

for (int i = 0; i < files.length; i++) {

if (files[i].isDirectory()) {

readFiles1(files[i].getPath(), fileNameList);

} else {

String path1 = files[i].getPath();

String fileName = path1.substring(path1.lastIndexOf("\\") + 1);

fileNameList.add(fileName);

}

}

} else {

String path1 = file.getPath();

String fileName = path1.substring(path1.lastIndexOf("\\") + 1);

fileNameList.add(fileName);

}

return fileNameList;

}

将内容输出到(追加)txt文件保存:

/**

* 将内容输出到(追加)txt文件保存

*

* @param content

* @throws IOException

*/

public static void outputToTxt(String content, String outputPath) throws IOException {

FileWriter fw = new FileWriter(outputPath, true);//追加内容

PrintWriter pw = new PrintWriter(fw);

pw.println(content);

pw.close();

fw.close();

pw.flush();

}

测试:

进行测试,读取“E:\图书\图书馆\小说杂文”下的所有文件,并将结果输出到

“C:\Users\Administrator\Desktop\fileNameList.txt”中。测试代码如下:

public static void main(String[] args) {

String filePath = "E:\\图书\\图书馆\\小说杂文";

String outputPath1 = "C:\\Users\\Administrator\\Desktop\\fileNameList.txt";

try {

ArrayList fileNameList = readFiles1(filePath, new ArrayList());

System.out.println(fileNameList.size());

for (int i = 0; i < fileNameList.size(); i++) {

outputToTxt(fileNameList.get(i), outputPath1);

}

} catch (Exception e) {

e.printStackTrace();

}

}

测试结果如下:

这是文件路径,路径下面有一个新建文件夹和若干个txt文件,共1086个对象,新建文件夹下面共有10个txt文件,计算可得此路径下面共有1086+10-1=1095个txt个文件:

cc7b9469a33a6d1c90b2f57b3ff3239f.png

a21e75e3d102122272048634ec545846.png

这是运行的控制台打印信息,共有1095条打印信息:

0f8fc65973754d84218bbc7707ae4aea.png

这是桌面的fileNameList.txt,一共有1095行:

7fa9c2aa799930ddfe245ab81c620aaa.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值