Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Membaca Baris Khusus dengan Cekap daripada Fail di Java?

Bagaimanakah Saya Boleh Membaca Baris Khusus dengan Cekap daripada Fail di Java?

Susan Sarandon
Susan Sarandonasal
2024-11-27 11:56:09882semak imbas

How Can I Efficiently Read Specific Lines from a File in Java?

Membaca Baris Khusus daripada Fail dalam Java

Mendapatkan semula baris tertentu daripada fail boleh berguna dalam pelbagai senario. Java menawarkan pelbagai cara untuk menyelesaikan tugas ini, terutamanya apabila bekerja dengan kedua-dua fail kecil dan besar.

Fail Kecil

Jika saiz fail agak kecil, pendekatan yang paling mudah adalah untuk membaca keseluruhan fail ke dalam memori dan kemudian mengakses baris yang dikehendaki. Ini boleh dicapai menggunakan kaedah Files.readAllLines():

String line32 = Files.readAllLines(Paths.get("file.txt")).get(32);

Dalam contoh ini, bahagian Paths.get("file.txt") mewakili laluan fail dan readAllLines() membaca keseluruhan fail dan menyimpan setiap baris sebagai rentetan dalam senarai. Dengan menggunakan get(32), kita boleh mengakses terus baris ke-32 daripada senarai.

Fail Besar

Untuk fail besar, membaca keseluruhan fail ke dalam memori mungkin tidak cekap. Dalam kes sedemikian, kaedah Files.lines() boleh digunakan untuk memproses fail baris demi baris:

try (Stream<String> lines = Files.lines(Paths.get("file.txt"))) {
    line32 = lines.skip(31).findFirst().get();
}

Di sini, Files.lines() mencipta aliran baris daripada fail. Kaedah langkau(31) melangkau 31 baris pertama, dan findFirst() mendapatkan semula baris ke-32. Akhir sekali, get() menukar nilai pilihan kepada rentetan.

Pendekatan ini membolehkan anda melintasi fail dengan cekap dan mendapatkan semula baris yang dikehendaki tanpa perlu memuatkan keseluruhan fail ke dalam memori.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Baris Khusus dengan Cekap daripada Fail di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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