本文用递归的方法实现读取一个路径下面的所有文件并将文件名称保存到Txt文件中,亲测可用。
文件路径下的所有文件
*
* @param path
* @param fileNameList
* @return
*/
public static ArrayListreadFiles1(String path,ArrayListfileNameList) {
File file = new File(path);
if (file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; 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”中。测试代码如下:
fileNameList = readFiles1(filePath,new ArrayList());
System.out.println(fileNameList.size());
for (int i = 0; i
outputToTxt(fileNameList.get(i),outputPath1);
}
} catch (Exception e) {
e.printStackTrace();
}
}
测试结果如下:
这是文件路径,路径下面有一个新建文件夹和若干个txt文件,共1086个对象,新建文件夹下面共有10个txt文件,计算可得此路径下面共有1086+10-1=1095个txt个文件:
文件夹">
这是运行的控制台打印信息,共有1095条打印信息:
![watermark,t_70](https://img.php1.cn/3cd4a/1eebe/cd5/8343fdbffb0056b5.webp?x-oss-process=image/watermark,t_70)