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 = null;
        PrintWriter pw = null;
        fw = new FileWriter(outputPath, true);//追加内容
        pw = new PrintWriter(fw);
        pw.println(content + "\n");
        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行:

原文地址:https://www.cnblogs.com/sgh1023/p/9971817.html

时间: 2024-10-11 21:51:15

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

Java递归输出指定路径下所有文件及文件夹

package a.ab; import java.io.File; import java.io.IOException; public class AE { public static void main(String[] args) { File f=new File("D:\\DD"); new AE().fileList(f); } public void fileList(File fl){ try{ File[] fs=fl.listFiles(); for(File f

Java扫描指定文件路径下的文件并且递归扫描其子目录下的所有文件

本文主要实现了扫描指定文件路径下的文件,递归扫描其子目录下的所有文件信息,示例文件为: 要求将后缀为.dat的文件夹信息也写入到数据库中,然后将.chk文件解析,将文件中对应的内容读出来写入到数据库,对应类为ChkFileParseFactroy,本文文件发现代码为: 1 package com.src.service.impl; 2 3 import java.io.File; 4 import java.net.InetAddress; 5 import java.net.NetworkIn

C#递归读取指定路径下的所有文件并保存至TreeView

1.代码如下: /// <summary> /// 递归读取指定路径下的所有文件信息 /// </summary> /// <param name="path"></param> /// <param name="node"></param> private void DIGuiGetFile(string path, TreeNode node) { if (!Directory.Exists

Java 递归获取一个路径下的所有文件,文件夹名称

package com.readfile; import java.io.File; public class GetAllFiles { public static void main(String[] args) { //路径 这里写一个路径进去 String path="F:\\QQ文档"; //调用方法 getFiles(path); } /** * 递归获取某路径下的所有文件,文件夹,并输出 */ public static void getFiles(String path

递归读取制定目录下所有文件夹和文件的实现(java)

public static String getAllDirectorisAndFiles(String path){ Map<String, Object> responseMap = new HashMap<String, Object>(); responseMap.put("time_stamp", Tools.currentTime()); String responseString = ""; try { getDirectori

File:迭代读取文件夹下的文件或者文件夹

在项目中,有时需要获取文件夹下的所有文件或者文件夹,以及对应的最后修改时间.下面的代码实现了迭代读取指定路径下的文件,修改时间可以自己加lastModified()方法. public class Folder { public static void main(String[] args) { String path="F:/111"; readFile(path); } /**迭代读取文件夹下所有子文件或者文件夹 * @param path 文件夹路径 */ public stat

java中获得src路径下文件的常用方法

在代码中一般读取src下的配置文件 读取src路径下的log4j.properties和message.properties 读取message.properties文件并将properties中的键值对转为map PropertiesServlet.class.getClassLoader().getResourceAsStream("/message.properties");返回值是一个InputStream   /**      * 根据java标准properties文件读取

Java API 读取HDFS目录下的所有文件

/** * 获取1号店生鲜食品的分类id字符串 * @param filePath * @return */ public String getYHDSXCategoryIdStr(String filePath) { final String DELIMITER = new String(new byte[]{1}); final String INNER_DELIMITER = ","; // 遍历目录下的所有文件 BufferedReader br = null; try { F

java非递归检索文件夹下所有文件的代码

把开发过程比较重要的一些内容段做个珍藏,下面的内容段是关于java非递归检索文件夹下所有文件的内容,应该是对大家有所帮助. DateFormat df = DateFormat.getDateTimeInstance();LinkedList<File> folders = new LinkedList<File>();LinkedList<File> filelists = new LinkedList<File>();File dir = new Fil