Rumah > Java > javaTutorial > Bagaimanakah Java Boleh Menghitung Fail Secara Rekursif Secara Cekap?

Bagaimanakah Java Boleh Menghitung Fail Secara Rekursif Secara Cekap?

Susan Sarandon
Lepaskan: 2024-12-19 17:11:10
asal
990 orang telah melayarinya

How Can Java Efficiently Recursively Enumerate Files?

Menghitung Fail Secara Rekursif dengan Java

Meneroka pilihan untuk menyenaraikan fail secara rekursif di bawah direktori tertentu, kami menemui pelbagai pendekatan. Walaupun pelaksanaan "godam" wujud, rangka kerja Java sendiri menawarkan utiliti yang mantap untuk menyelaraskan tugas ini.

Pendekatan Diperkemas Java 8

Java 8 memperkenalkan penyelesaian berasaskan aliran yang mudah :

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

Pendekatan ini menyediakan cara yang elegan untuk melintasi fail dan menyokong pelbagai operasi strim seperti penapisan, pemetaan dan pengehadan.

Files.find: Penapisan pada Atribut Fail

Java juga menyediakan Files.find, yang menerima predikat dwi kepada tapis fail berdasarkan atribut:

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

While Files.find mungkin menawarkan pengoptimuman khusus apabila menapis pada atribut, prestasinya secara amnya setanding dengan Files.walk.

Perbandingan Prestasi

Apabila menilai pendekatan ini, kami mengesyorkan mempertimbangkan implikasi prestasi khusus berdasarkan penggunaan anda senario. Untuk mendapatkan cerapan yang lebih terperinci, rujuk projek GitHub dalam kemas kini jawapan, yang memberikan keputusan dan kes ujian.

Atas ialah kandungan terperinci Bagaimanakah Java Boleh Menghitung Fail Secara Rekursif Secara Cekap?. 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