Rumah > Java > javaTutorial > Bagaimana untuk Menyenaraikan Fail secara Rekursif dalam Java Menggunakan `Files.walk` dan `Files.find` Java 8?

Bagaimana untuk Menyenaraikan Fail secara Rekursif dalam Java Menggunakan `Files.walk` dan `Files.find` Java 8?

Susan Sarandon
Lepaskan: 2025-01-03 06:44:39
asal
760 orang telah melayarinya

How to Recursively List Files in Java Using Java 8's `Files.walk` and `Files.find`?

Cara Menyenaraikan Fail secara Rekursif di Java Menggunakan Java 8

Pengenalan

Penyenaraian fail rekursif ialah tugas biasa yang melibatkan merentasi direktori dan subdirektori untuk mendapatkan semula senarai semua fail dalam laluan yang ditentukan. Di Java, terdapat berbilang pendekatan untuk mencapai ini menggunakan perpustakaan terbina dalam dan pihak ketiga.

Java 8 (Menggunakan Files.walk)

Java 8 diperkenalkan cara yang berkuasa untuk memproses fail melalui kaedah Files.walk, yang menyediakan aliran objek Path yang mewakili semua fail dalam pepohon direktori. Untuk menyenaraikan semua fail biasa di bawah direktori, anda boleh menggunakan kod berikut:

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

Pendekatan ini menawarkan cara yang mudah dan mudah untuk melintasi pepohon fail dan melaksanakan operasi pada fail individu, seperti mencetak nama mereka atau melakukan pemprosesan tambahan.

Java 8 (Menggunakan Files.find)

Java 8 juga memperkenalkan kaedah Files.find, yang membolehkan anda mencari fail berdasarkan predikat penapis. Untuk penyenaraian fail rekursif, anda boleh menggunakan penapis untuk menyemak fail biasa:

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

Walaupun Files.find mungkin lebih cekap jika anda perlu menapis berdasarkan atribut fail, tiada prestasi yang ketara perbezaan antara Files.walk dan Files.cari apabila hanya menyenaraikan fail biasa.

Perbandingan dengan Lain Pendekatan

Pendekatan berasaskan aliran Java 8 menawarkan kelebihan ketara berbanding pelaksanaan rekursif atau godam tradisional. Ia menyediakan cara ringkas dan ekspresif untuk mengendalikan penyenaraian fail rekursif, menjadikannya lebih mudah untuk membaca, menyelenggara dan memanjangkan kod anda.

Atas ialah kandungan terperinci Bagaimana untuk Menyenaraikan Fail secara Rekursif dalam Java Menggunakan `Files.walk` dan `Files.find` Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan