Java从大目录中读取文件

时间:2017-02-13 08:57:17

标签: java filenames bigdata

我有一个包含100万个文本文件的目录。我想列出所有文件名。我尝试使用File.listFiles()并将文件名打印到控制台。但是在开始打印第一个文件名之前花了很长时间。有没有更快的方法来列出这些文件名?

1 个答案:

答案 0 :(得分:2)

由于listFiles()会将结果加载到您的记忆中,因此无法通过此方法加速该过程。

但您可以使用Java的DirectoryStream将内容预加载到内存中并加载每个文件名。见link

Path folder = Paths.get("...");
  try (DirectoryStream<Path> stream = Files.newDirectoryStream(folder)) {
    for (Path entry : stream) {
      // Process the entry
    }
   } catch (IOException ex) {
    // An I/O problem has occurred
  }