Java 从大目录读取文件

Java Read files from big directory

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

由于 listFiles() 将结果加载到您的内存中,因此无法使用此方法加速该过程。

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

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
  }