【发布时间】:2018-08-26 08:03:31
【问题描述】:
这是我电脑中的数据结构。
amdar(folder) / 20141125(folder) / 300++ txt files
/ 20141126(folder) / 300++ txt files
/ 20141127(folder) / 300++ txt files ...
/ 20141128(folder) / 300++ txt files ...
/ 20141129(folder) / 300++ txt files ...
... daily folders are added on and on ... `
我想用 Java 读取每个文件夹以及 300++ txt 文件。为此,我使用了两个循环:一个用于文件夹,另一个用于文件夹的 txt 文件。文件夹的第一个 for 循环运行良好。 txt 文件的第二个嵌套 for 循环出错了。虽然文件夹从 20141125 开始,但读取的 txt 文件从 20141128 文件夹中的某个位置开始;文件夹中有这么多txt文件:20141125~20141128没有被读取。请看下面的截图。
为了解决这个问题,我尝试使用while和separate方法而不是嵌套for循环,但是结果(错误),不是从开始文件夹开始读取,是一样的。根据下面的代码,我找不到导致此问题发生的任何原因。你能解释一下为什么吗?谢谢。
public static void main(String[] args) {
File dir = new File("c:\\html_test\\amdar");
File[] folder = dir.listFiles();
for(File table : folder) {
System.out.println(table);
File[] filenames = table.listFiles();
for (File file : filenames) {
System.out.println(file);
}
}
}
【问题讨论】:
-
谢谢!我修改了代码。我成功地创建了表格,读取了一个 txt 文件。但问题仅在我尝试读取其中的多个文件夹和多个 txt 文件时才开始。我觉得这是 Java 的内部错误,因为我尝试了几种方法。
-
更好,但仍然:阅读minimal reproducible example 并清楚地描述您希望您的代码做什么以及实际发生的情况。我还建议您删除与您的特定问题无关的任何内容。最好提出 10 个不同的明确问题,而不是一个涉及 5 或 10 个不同方面的整体任务!
-
再次,好多了!我现在很忙,但我希望很快会有一个好的答案。
-
感谢您的帮助!您的指示让我的问题更加清晰明了!
标签: java file text-files