Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengira Baris dengan Cekap dalam Fail Teks?

Bagaimana untuk Mengira Baris dengan Cekap dalam Fail Teks?

DDD
DDDasal
2025-01-11 09:48:41962semak imbas

How to Efficiently Count Lines in a Text File?

Kaedah pengiraan baris fail teks

Mengira bilangan baris dalam fail teks ialah tugas biasa dalam pengaturcaraan. Berikut ialah beberapa kaedah yang cekap:

1 Gunakan Fail.ReadAllLines():

Jika kecekapan bukan isu utama, kaedah ini ringkas dan jelas:

<code class="language-csharp">var lineCount = File.ReadAllLines(@"C:\file.txt").Length;</code>

Walaupun mudah, kaedah ini memuatkan keseluruhan fail ke dalam memori, yang boleh menyebabkan masalah prestasi untuk fail besar.

2. Gunakan StreamReader:

Untuk meningkatkan kecekapan, terutamanya apabila memproses fail besar, disyorkan untuk menggunakan StreamReader:

<code class="language-csharp">var lineCount = 0;
using (var reader = File.OpenText(@"C:\file.txt"))
{
    while (reader.ReadLine() != null)
    {
        lineCount++;
    }
}</code>

Kaedah ini mengulangi baris demi baris untuk mengelakkan masalah penggunaan memori.

Penggunaan dan kecekapan memori:

Perlu diperhatikan bahawa walaupun pendekatan pertama adalah mudah, ia menggunakan lebih banyak memori dengan menyimpan keseluruhan fail dalam tatasusunan. Kaedah kedua menggunakan kurang memori tetapi mungkin tidak cekap untuk fail yang lebih kecil.

Kesimpulan:

Pilihan kaedah bergantung pada keperluan khusus tugas. Kaedah pertama ialah penyelesaian pantas untuk fail kecil di mana penggunaan memori tidak menjadi masalah. Untuk fail yang besar, kaedah kedua adalah lebih cekap dari segi penggunaan memori.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Baris dengan Cekap dalam Fail Teks?. 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