Rumah >Java >javaTutorial >Bagaimanakah `Files.walk()` dan `Files.find()` Java 8 Boleh Memperkemas Penyenaraian Fail Rekursif?
Penyenaraian Fail Rekursif dalam Java: Diperkemas dengan Penambahbaikan Rangka Kerja
Latar Belakang:
Lelaran berakhir semua fail dalam struktur direktori adalah keperluan biasa dalam pengaturcaraan Java. Walau bagaimanapun, banyak pelaksanaan cenderung menjadi rumit dan kekurangan sokongan rangka kerja.
Penyelesaian Rangka Kerja (Java 8 ): Files.walk() dan Files.find()
Java 8 memperkenalkan mekanisme elegan untuk fail lelaran:
Contoh Kod:
Menggunakan Files.walk(), anda boleh menyenaraikan semua fail biasa secara rekursif di bawah direktori yang ditentukan seperti berikut:
try (Stream<Path> stream = Files.walk(Paths.get(path))) { stream.filter(Files::isRegularFile) .forEach(System.out::println); }
Penapisan Bersyarat (Pilihan):
Jika penapisan atribut fail diperlukan, Files.find() menawarkan kecekapan yang dipertingkatkan:
Files.find(Paths.get(path), Integer.MAX_VALUE, (filePath, fileAttr) -> fileAttr.isRegularFile()) .forEach(System.out::println);
Pertimbangan Prestasi:
Files.walk() dan Files.find() secara amnya berprestasi sama dalam amalan. Walau bagaimanapun, Files.find() mungkin sedikit lebih cekap apabila menapis berdasarkan atribut.
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimanakah `Files.walk()` dan `Files.find()` Java 8 Boleh Memperkemas Penyenaraian Fail Rekursif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!