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>
    由于博主也是在攀登的路上,文中可能存在不当之处,欢迎各位多指教! 如果文章对您有用,那么请点个”推荐“,以资鼓励!
  • 相关阅读:
    存储过程
    数据库中的锁
    数据库事务
    三大范式
    IOC(一)
    rabbitmq部署
    配置SQLServer2012,允许远程连接
    6种常见的Git错误以及解决的办法
    灵活使用Win+R快捷键提高工作效率
    sql 创建视图常用的几种sql函数
  • 原文地址:https://www.cnblogs.com/sgh1023/p/9971817.html
Copyright © 2011-2022 走看看