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); }
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);
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!