Java 中的遞歸文件列表:通過框架增強功能進行簡化
背景:
迭代所有檔案都放在一個目錄結構中是Java程式設計中的常見需求。然而,許多實現往往很複雜並且缺乏框架支援。
框架解決方案(Java 8):Files.walk() 和 Files.find()
Java 8.引入優雅的檔案機制iteration:
程式碼範例:
程式碼範例:try (Stream<Path> stream = Files.walk(Paths.get(path))) { stream.filter(Files::isRegularFile) .forEach(System.out::println); }
利用Files.walk(),可以遞歸列出指定目錄下的所有常規文件,如下所示:
條件過濾(可選):Files.find(Paths.get(path), Integer.MAX_VALUE, (filePath, fileAttr) -> fileAttr.isRegularFile()) .forEach(System.out::println);
如果需要檔案屬性過濾,Files.find()可以提高效率:
效能注意事項:Files.walk() 和 Files.find() 在實務上通常表現相同。然而,當基於屬性進行篩選時,Files.find() 可能會稍微更有效率。
以上是Java 8 的 `Files.walk()` 和 `Files.find()` 如何簡化遞迴檔案清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!