Rumah > Java > javaTutorial > Bagaimana untuk Mendapatkan Kembali Baris Terakhir Fail Teks Besar dengan Cekap?

Bagaimana untuk Mendapatkan Kembali Baris Terakhir Fail Teks Besar dengan Cekap?

Susan Sarandon
Lepaskan: 2024-11-07 19:10:03
asal
741 orang telah melayarinya

How to Efficiently Retrieve the Last Line of a Large Text File?

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);
    }
    // ...
}
Salin selepas log masuk

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);
    }
    // ...
}
Salin selepas log masuk

Panggil dan Gunakan:

File file = new File("D:\stuff\huge.log");
System.out.println(tail(file));
System.out.println(tail2(file, 10));
Salin selepas log masuk

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!

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