zoukankan      html  css  js  c++  java
  • 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>
    由于博主也是在攀登的路上,文中可能存在不当之处,欢迎各位多指教! 如果文章对您有用,那么请点个”推荐“,以资鼓励!
  • 相关阅读:
    ccache: error: Failed to ctreate temporary file for esp-idf/..../pwhash_scryptsalsa208sha256_nosse.c.obj: No Such file or directory
    electron+vue-cli3 打包报错 “Application entry file "background.js" does not exist”
    给按钮加loading效果
    java 的 try catch
    mac 的jmeter启动命令
    json转java对象 和 java对象转json 的方法 (一个类renturn的数据 映射到另外一个类接收)
    springboot 待学习的东西
    csv
    vue-cli 出现导航重复解决方法
    vue json展示组件
  • 原文地址:https://www.cnblogs.com/sgh1023/p/9971817.html
Copyright © 2011-2022 走看看