Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengakses Baris Tertentu dengan Cekap dalam Fail Teks Tanpa Memuatkan Keseluruhan Fail ke dalam Memori?

Bagaimanakah Saya Boleh Mengakses Baris Tertentu dengan Cekap dalam Fail Teks Tanpa Memuatkan Keseluruhan Fail ke dalam Memori?

DDD
Lepaskan: 2025-01-15 08:01:46
asal
735 orang telah melayarinya

How Can I Efficiently Access a Specific Line in a Text File Without Loading the Entire File into Memory?

Baca baris fail teks yang ditentukan dengan cekap untuk mengelakkan penggunaan memori

Artikel ini memperkenalkan beberapa cara untuk membaca baris fail teks tertentu dengan cekap tanpa memuatkan keseluruhan fail ke dalam memori.

.NET 4.0 dan ke atas

.NET 4.0 dan lebih tinggi boleh menggunakan kaedah langkau baris:

1

<code>string line = File.ReadLines(FileName).Skip(14).Take(1).First();</code>

Salin selepas log masuk

Kaedah ini membaca baris 15 terus tanpa memuatkan keseluruhan fail ke dalam memori.

.NET 4.0 ke bawah

Sebelum .NET 4.0, anda perlu melangkau baris demi baris:

1

2

3

4

5

6

7

8

<code>string GetLine(string fileName, int line)

{

   using (var sr = new StreamReader(fileName)) {

       for (int i = 1; i < line; i++)

          sr.ReadLine();

       return sr.ReadLine();

   }

}</code>

Salin selepas log masuk

Kaedah ini hanya membaca baris yang diperlukan, sekali gus mengurangkan penggunaan memori.

Nota

Walaupun pendekatan langkau baris mengelak daripada menyimpan keseluruhan fail dalam ingatan, ia mungkin kurang cekap untuk mengakses baris berhampiran penghujung fail. Tambahan pula, struktur fail mesti membenarkan nombor baris ditentukan dengan tepat, tanpa bergantung pada nombor baris yang mungkin berbeza-beza.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Baris Tertentu dengan Cekap dalam Fail Teks Tanpa Memuatkan Keseluruhan Fail ke dalam Memori?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan