• 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:UsersAdministratorDesktopfileNameList.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>
    由于博主也是在攀登的路上,文中可能存在不当之处,欢迎各位多指教! 如果文章对您有用,那么请点个”推荐“,以资鼓励!
  • 相关阅读:
    PHP和JS判断手机还是电脑访问
    apache 一个站点配置多个域名
    拾遗
    提高工作效率的工具
    PHP urlencode
    JS encodeURI和encodeURIComponent
    Linux实践:ELF文件格式分析
    Linux实践:文件破解
    Linux实践:模块
    Linux内核学习期末总结(网课)
  • 原文地址:https://www.cnblogs.com/sgh1023/p/9971817.html
Copyright © 2020-2023  润新知