首頁 > 後端開發 > C++ > 如何在C#.NET中的行有效讀取文本文件?

如何在C#.NET中的行有效讀取文本文件?

Barbara Streisand
發布: 2025-01-29 08:30:13
原創
1022 人瀏覽過

How Can I Efficiently Read a Text File Line by Line in C# .NET?

高效讀取文本文件:逐行處理

問題:

如何在 C# .NET 中高效地逐行讀取文本文件?

解答:

根據具體需求,有多種方法可以優化文件讀取。

使用 StreamReader.ReadLine:

與緩衝區大小為 128 字節相比,使用 StreamReader 並設置適當的緩衝區大小(例如,默認的 1024 或更大)可以顯著提高性能。

<code class="language-csharp">using (var fileStream = File.OpenRead(fileName))
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, 1024)) {
    string line;
    while ((line = streamReader.ReadLine()) != null)
    {
        // 处理每一行
    }
}</code>
登入後複製

使用 File.ReadLines:

這是一種針對逐行處理進行優化的替代方法,它避免了同時佔用所有行的內存。

<code class="language-csharp">var lines = File.ReadLines(fileName);
foreach (var line in lines)
    // 处理每一行</code>
登入後複製

使用 File.ReadAllLines:

雖然返回一個 String[],但此方法比上述方法的內存需求更高。但是,它允許隨機訪問行。

<code class="language-csharp">var lines = File.ReadAllLines(fileName);
for (var i = 0; i < lines.Length; i++)
    // 处理每一行</code>
登入後複製

使用 String.Split:

此方法通常較慢且內存密集,它將文件的全部內容分割成一個包含各行的數組。

<code class="language-csharp">using (var streamReader = File.OpenText(fileName)) {
    var lines = streamReader.ReadToEnd().Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
    foreach (var line in lines)
        // 处理每一行
}</code>
登入後複製

基準測試對於根據您的特定文件大小和處理要求確定最佳方法至關重要。對於高效的逐行處理,通常建議使用 File.ReadLines。

以上是如何在C#.NET中的行有效讀取文本文件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板