Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengakses Baris Khusus dengan Cekap dalam Fail Teks Besar Menggunakan C#?

Bagaimanakah Saya Boleh Mengakses Baris Khusus dengan Cekap dalam Fail Teks Besar Menggunakan C#?

Patricia Arquette
Lepaskan: 2025-01-15 09:28:44
asal
663 orang telah melayarinya

高效读取大型文本文件中的特定行 (C#)

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

  • Kira bait ofset baris sasaran dalam fail.
  • Letakkan strim fail ke offset yang dikira menggunakan kaedah FileStream.Seek.
  • Gunakan StreamReader.ReadLine() untuk membaca baris.

Kaedah 2: Kaedah LINQ (terpakai untuk .NET 4.0 dan ke atas)

  • Gunakan File.ReadLines(fileName).Skip(line - 1).Take(1).First().
  • Kaedah ini membenarkan akses terus ke talian individu tanpa membaca keseluruhan fail.

Kaedah tiga: Pembaca baris tersuai

  • Buat pembaca baris tersuai yang melangkau bilangan bait tertentu sebelum membaca baris. Kaedah ini sesuai untuk nombor baris kecil dan boleh diproses dengan cekap.

Contoh (Kaedah 1)

<code class="language-csharp">public static string GetLine(string fileName, int line)
{
    using (var sr = new StreamReader(fileName))
    {
        // ... (代码略,此处需补充计算字节偏移量和读取行的逻辑) ...
    }
}</code>
Salin selepas log masuk

Memproses dokumen berstruktur

Untuk dokumen berstruktur, anda boleh menggunakan strategi berikut:

  • Gunakan File.ReadLines(fileName).Take(25).ToArray() untuk membaca 25 baris pertama.
  • Uraikan baris 17 untuk menentukan nilai pembolehubah X.
  • Gunakan 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!

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