ホームページ >Java >&#&チュートリアル >Java 8 の `Files.walk()` と `Files.find()` は再帰的なファイルのリストをどのように効率化できますか?
Java での再帰的ファイルリスト: フレームワークの機能強化による合理化
背景:
反復ディレクトリ構造内のすべてのファイルは、Java プログラミングでは一般的に必要です。ただし、多くの実装は複雑で、フレームワークのサポートが不足している傾向があります。
フレームワーク ソリューション (Java 8 ): Files.walk() および Files.find()
Java 8 ファイルにエレガントなメカニズムを導入iteration:
コード例:
Files.walk() を使用すると、次のように指定されたディレクトリにあるすべての通常のファイルを再帰的に一覧表示できます。
try (Stream<Path> stream = Files.walk(Paths.get(path))) { stream.filter(Files::isRegularFile) .forEach(System.out::println); }
条件付きフィルタリング(オプション):
ファイル属性のフィルタリングが必要な場合、Files.find() により効率が向上します:
Files.find(Paths.get(path), Integer.MAX_VALUE, (filePath, fileAttr) -> fileAttr.isRegularFile()) .forEach(System.out::println);
パフォーマンスに関する考慮事項:
Files.walk() と Files.find() は、実際には通常同じように動作します。ただし、属性に基づいてフィルタリングする場合は、Files.find() の方がわずかに効率的である可能性があります。
追加メモ:
以上がJava 8 の `Files.walk()` と `Files.find()` は再帰的なファイルのリストをどのように効率化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。