C# dengan cekap membaca baris tertentu dalam fail teks besar
Perlu membaca baris tertentu daripada fail teks yang besar, mengelakkan penyelesaian intensif memori untuk menyimpan keseluruhan fail sebagai tatasusunan rentetan. Kaedah berikut boleh dicapai:
Kaedah 1: Kaedah Offset Byte
FileStream.Seek
. StreamReader.ReadLine()
untuk membaca baris. Kaedah 2: Kaedah LINQ (terpakai untuk .NET 4.0 dan ke atas)
File.ReadLines(fileName).Skip(line - 1).Take(1).First()
. Kaedah tiga: Pembaca baris tersuai
Contoh (Kaedah 1)
<code class="language-csharp">public static string GetLine(string fileName, int line) { using (var sr = new StreamReader(fileName)) { // ... (代码略,此处需补充计算字节偏移量和读取行的逻辑) ... } }</code>
Memproses dokumen berstruktur
Untuk dokumen berstruktur, anda boleh menggunakan strategi berikut:
File.ReadLines(fileName).Take(25).ToArray()
untuk membaca 25 baris pertama. X
. File.ReadLines(fileName).Skip(25).Take(X).ToArray()
untuk membaca baris X
seterusnya. Kaedah ini membolehkan anda membaca baris tertentu dengan cekap daripada fail teks besar tanpa memuatkan keseluruhan fail ke dalam memori. Kaedah yang anda pilih bergantung pada saiz, struktur dan versi Rangka Kerja .NET khusus fail.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Baris Khusus dengan Cekap dalam Fail Teks Besar Menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!