Java 列出文件夹和子文件夹的内容,但我在控制台中得到的是正确的o/p,而不是在文件it';s不打印子文件夹内容';s
它不会将子文件夹内容打印到文件中 输出必须类似于: 目录:xyz 目录:a 1. 2. 3. 目录:b 1. 2.Java 列出文件夹和子文件夹的内容,但我在控制台中得到的是正确的o/p,而不是在文件it';s不打印子文件夹内容';s,java,Java,它不会将子文件夹内容打印到文件中 输出必须类似于: 目录:xyz 目录:a 1. 2. 3. 目录:b 1. 2. 3如果您只想修改上面的代码,那么下面的内容应该可以帮您完成这项工作: public static void listFilesForFolder(final File folder) throws IOException, InterruptedException { File file = new File("F:\\nitish\\out.txt"); //Yo
3如果您只想修改上面的代码,那么下面的内容应该可以帮您完成这项工作:
public static void listFilesForFolder(final File folder) throws IOException, InterruptedException
{
File file = new File("F:\\nitish\\out.txt"); //Your file
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
System.out.println("Directory:" + fileEntry.getName());
writer.write("Directory:" + fileEntry.getName());
listFilesForFolder(fileEntry);
} else {
int len = fileEntry.getName().length();
writer.write(fileEntry.getName().substring(0, len-4));
System.out.println("\t" + fileEntry.getName().substring(0, len-4));
}
}
writer.close();
}
但是,我认为您可以保持一个运行的变量(比如StringBuilder类型)它可以从ListFileForFolder方法返回,其中包含要写入文件的文本,然后您可以在最后将该值写入文件一次。格式化代码,以便更易于阅读。请尝试详细说明您的问题,并将其进一步完善。如果您需要帮助学习如何写一个好问题,请访问。是否有错误?或者现在打印的是什么?打印主文件夹中的内容,但不打印文件中的子文件夹内容我正在获得正确的o/pconsole@SrinivasMS,问题是由于每次在每个递归循环上创建writer,甚至在前一个循环关闭之前。
public static void listFilesForFolder(final File folder) throws IOException, InterruptedException
{
File file = new File("F:\\nitish\\out.txt"); //Your file
BufferedWriter writer = new BufferedWriter(new FileWriter(file, true));
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
System.out.println("Directory:" + fileEntry.getName());
writer.write("Directory:\t" + fileEntry.getName());
writer.flush();
listFilesForFolder(fileEntry);
} else {
int len = fileEntry.getName().length();
writer.write(fileEntry.getName().substring(0, len-4));
writer.flush();
System.out.println("\t" + fileEntry.getName().substring(0, len-4));
}
}
writer.close();
}