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

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

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

/**
     * 递归读取文件路径下的所有文件
     * 
     * @param path
     * @param fileNameList
     * @return
     */
    public static ArrayList<String> readFiles1(String path, ArrayList<String> 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<String> fileNameList = readFiles1(filePath, new ArrayList<String>());
            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个文件:
小说杂文视图
新建文件夹
这是运行的控制台打印信息,共有1095条打印信息:
控制台信息
这是桌面的fileNameList.txt,一共有1095行:
fileNameList.txt

        </div>
					<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-7f770a53f2.css" rel="stylesheet">
            </div>
posted @   James_Shangguan  阅读(2460)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示