无法从java中的系列文件夹中读取文件

时间:2014-04-22 21:19:59

标签: java io

我正在尝试将文件从文件夹读取到java,我找到了这个片段并使用了它。

File folder = new File("Z..");
    File[] listOfFiles = folder.listFiles();



for (int i = 0; i < listOfFiles.length; i++) {
      File file = listOfFiles[i];
      if (file.isFile() && file.getName().endsWith(".txt")) {
       String content = FileUtils.readFileToString(file);

    }

这样可以正常工作,但它不会按顺序检索文件。我有文件编号文件0,文件1,文件2 ..... file10以及它如何检索文件0文件1文件10然后文件2,我应该以适当的系列检索它。 我应该使用其他东西吗?我是新手。

2 个答案:

答案 0 :(得分:0)

正在按字母顺序读取文件。按字母顺序排列,10在2之前出现,因为两者中的第一个字母首先被比较,即'1'与'2'。

要解决此问题,您可以解析数字,将每个数字链接到原始文件名,然后对数字进行排序并按新顺序阅读。

答案 1 :(得分:0)

这里有一个很好的例子,可以使用自定义比较器对文件数组进行排序: Best way to list files in Java, sorted by date last modified

您必须将比较器的返回值修改为

return f1.getName().compareTo(f2.getName());

它应该是你正在寻找的。

如果您的所有文件都已编号,您可能希望将文件名比较为整数:

return Integer.valueOf(f1.getName()).compareTo(Integer.valueOf(f2.getName()));