Rumah > pembangunan bahagian belakang > C++ > Bagaimana saya boleh mengoptimumkan bacaan fail teks line-by-line di C#?

Bagaimana saya boleh mengoptimumkan bacaan fail teks line-by-line di C#?

DDD
Lepaskan: 2025-01-29 08:34:11
asal
215 orang telah melayarinya

How Can I Optimize Line-by-Line Text File Reading in C#?

Mengoptimumkan bacaan fail teks line-by-line di C#

Artikel ini meneroka kaedah yang cekap untuk membaca fail teks dengan baris dalam C#. Strategi Pengoptimuman Prestasi dianalisis untuk membantu anda memilih pendekatan terbaik untuk keperluan anda.

Streamreader dengan Buffering Enhanced

Kaedah

menawarkan saiz penampan yang boleh dikonfigurasikan (ingkar hingga 1024 bait). Meningkatkan penampan ini secara dramatik dapat meningkatkan kelajuan baca: StreamReader.ReadLine()

<code class="language-csharp">const int BufferSize = 4096; // Increased buffer size for better performance
using (var fileStream = File.OpenRead(fileName))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize)) {
    string line;
    while ((line = streamReader.ReadLine()) != null)
    {
        // Process the line
    }
}</code>
Salin selepas log masuk
File.Readlines: Iteration Line Efficial

menyediakan pendekatan yang lebih efisien dan sering lebih cepat untuk meleleh melalui garis: File.ReadLines()

<code class="language-csharp">foreach (var line in File.ReadLines(fileName))
{
    // Process the line
}</code>
Salin selepas log masuk
file.readalllines: akses rawak, penggunaan memori yang lebih tinggi

Jika anda memerlukan akses rawak ke garisan,

memuatkan keseluruhan fail ke dalam memori. Ini mudah tetapi menggunakan lebih banyak ingatan, menjadikannya kurang sesuai untuk fail yang sangat besar: File.ReadAllLines()

<code class="language-csharp">var lines = File.ReadAllLines(fileName);
for (int i = 0; i < lines.Length; i++)
{
    // Process line at index i
}</code>
Salin selepas log masuk
Mengelakkan string.split

Menggunakan

untuk menghuraikan baris dari keseluruhan kandungan fail secara amnya kurang cekap daripada kaedah di atas: String.Split()

<code class="language-csharp">// Less efficient - avoid this method if possible
using (var reader = File.OpenText(fileName)) {
    string[] lines = reader.ReadToEnd().Split(new[] { "\r\n", "\n" }, StringSplitOptions.None);
    foreach (string line in lines)
    {
        //Process line
    }
}</code>
Salin selepas log masuk
Pertimbangan Prestasi

penandaarasan adalah penting untuk menentukan kaedah optimum untuk aplikasi dan saiz fail khusus anda.

sering memberikan keseimbangan penggunaan kelajuan dan memori yang baik. Walau bagaimanapun, menyesuaikan File.ReadLines dalam BufferSize mungkin menghasilkan hasil yang lebih baik untuk senario tertentu. Pertimbangkan kekangan memori anda dan corak akses semasa membuat pilihan anda. StreamReader

Atas ialah kandungan terperinci Bagaimana saya boleh mengoptimumkan bacaan fail teks line-by-line di 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan