首頁 >Java >java教程 >Java如何高效遞歸枚舉文件?

Java如何高效遞歸枚舉文件?

Susan Sarandon
Susan Sarandon原創
2024-12-19 17:11:101034瀏覽

How Can Java Efficiently Recursively Enumerate Files?

使用 Java 遞歸枚舉檔案

探索遞歸列出指定目錄下檔案的選項,我們發現了各種方法。雖然存在「hacky」實現,但 Java 框架本身提供了強大的實用程式來簡化此任務。

Java 8 的簡化方法

Java 8 引入了一種方便的基於流的解決方案:

try (Stream<Path> stream = Files.walk(Paths.get(path))) {
    stream.filter(Files::isRegularFile)
          .forEach(System.out::println);
}

這種方法提供了一種優雅的方式來遍歷文件並支援一系列流操作,例如過濾、

Files.find:根據檔案屬性過濾

Java 也提供了Files.find,它接受雙謂詞來根據屬性過濾檔案:

Files.find(Paths.get(path),
           Integer.MAX_VALUE,
           (filePath, fileAttr) -> fileAttr.isRegularFile())
        .forEach(System.out::println);

雖然Files.find 在過濾屬性時可以提供特定的最佳化,但其效能通常與Files.walk。

效能比較

在評估這些方法時,我們建議根據您的使用場景考慮特定的效能影響。如需更詳細的見解,請參閱答案更新中的 GitHub 項目,其中提供了結果和測試案例。

以上是Java如何高效遞歸枚舉文件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn