Rumah >Java >javaTutorial >Bagaimana untuk Mendapatkan Kembali Baris Terakhir Fail Teks Besar dengan Cekap?
Mendapatkan Kembali Baris Terakhir Fail Teks Besar dengan Kecekapan
Apabila mengendalikan fail teks besar-besaran, mendapatkan semula baris akhir dengan cekap adalah penting. Akses rawak boleh memakan masa untuk fail besar, menjadikannya tidak praktikal. Sebaliknya, pertimbangkan penyelesaian ini:
Kembalikan Talian Bukan Kosong Terakhir:
Fungsi ekor di bawah dengan cepat mendapatkan semula baris bukan kosong terakhir fail tanpa memuatkan atau melintasi keseluruhan fail. Ia mencari ke penghujung fail dan membaca aksara ke belakang sehingga ia menemui pemisah baris, kemudian membina dan mengembalikan baris terakhir.
public String tail(File file) { // ... for (long filePointer = fileLength; filePointer != -1; filePointer--) { // ... sb.append((char) readByte); } // ... }
Kembalikan N Baris Terakhir:
Jika anda memerlukan baris N terakhir, gunakan fungsi tail2. Ia menggunakan teknik yang sama, tetapi ia mengira pemisah baris untuk menentukan baris yang dikehendaki sebelum membalikkan dan membina output.
public String tail2(File file, int lines) { // ... for (long filePointer = fileLength; filePointer != -1; filePointer--) { line = line + 1; sb.append((char) readByte); } // ... }
Panggil dan Gunakan:
File file = new File("D:\stuff\huge.log"); System.out.println(tail(file)); System.out.println(tail2(file, 10));
Pertimbangan Unikod:
Pelaksanaan menggunakan pembalikan aksara untuk membina semula baris. Walaupun secara amnya berkesan, ini boleh menyebabkan masalah pembalikan Unikod dengan aksara seperti aksen dan topi. Oleh itu, ujian menyeluruh adalah penting sebelum menggunakan pendekatan ini merentas pelbagai bahasa.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kembali Baris Terakhir Fail Teks Besar dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!