Rumah >pembangunan bahagian belakang >C++ >Apakah cara yang paling berkesan untuk membaca baris fail teks mengikut baris di C#?

Apakah cara yang paling berkesan untuk membaca baris fail teks mengikut baris di C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-29 08:25:10353semak imbas

What's the Most Efficient Way to Read a Text File Line by Line in C#?

c#Cecair membaca fail teks

Apabila mengendalikan fail teks di C#, adalah penting untuk membacanya dengan cekap. Kaedah yang biasa digunakan ialah menggunakan untuk menghuraikan fail mengikut baris. Walau bagaimanapun, untuk meningkatkan prestasi, terdapat beberapa teknologi lain yang perlu dipertimbangkan.

<.> 1. Streamreader dengan penampan: StreamReader.ReadLine()

Saiz penampan lalai ialah 1024 bait. Meningkatkan nilai ini dapat meningkatkan prestasi dengan ketara, terutama untuk fail besar. Pertimbangkan menggunakan saiz penampan tetapan kod berikut:

<.> 2. File.Readlines:

StreamReader

Kaedah ini menyediakan alternatif yang lebih cekap daripada
<code class="language-csharp">using (var fileStream = File.OpenRead(fileName))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, 128))
{
    string line;
    while ((line = streamReader.ReadLine()) != null)
    {
        // 处理每一行
    }
}</code>
. Ia dimuatkan atas permintaan untuk meminimumkan penggunaan memori:

<.> 3. File.Readalllines:

StreamReader.ReadLine() Kaedah ini mengembalikan semua pelbagai baris, tetapi berbanding dengan

, kecekapan memori adalah rendah. Sekiranya anda perlu mengakses baris secara rawak, kaedah ini boleh digunakan:
<code class="language-csharp">var lines = File.ReadLines(fileName);
foreach (var line in lines)
    // 处理每一行</code>

<.> 4. String.split:

Penggunaan Kecekapan paling banyak garis pembahagian, terutama untuk dokumen besar. Ia perlu memuatkan keseluruhan fail ke dalam memori dan memperuntukkan array untuk semua baris:

File.ReadLines

Kaedah yang disyorkan:
<code class="language-csharp">var lines = File.ReadAllLines(fileName);
for (var i = 0; i < lines.Length; i++)
    // 处理每一行</code>

Untuk mendapatkan prestasi terbaik, disarankan untuk menggunakan kerana ia mempunyai keseimbangan antara kecekapan kelajuan dan memori. Jika anda memerlukan pilihan perkongsian fail tertentu, anda boleh mempertimbangkan menggunakan

dengan saiz penampan.

Atas ialah kandungan terperinci Apakah cara yang paling berkesan untuk membaca baris fail teks mengikut baris di C#?. 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