首頁 > 後端開發 > C++ > 如何使用 C# 高效存取大型文字檔案中的特定行?

如何使用 C# 高效存取大型文字檔案中的特定行?

Patricia Arquette
發布: 2025-01-15 09:28:44
原創
619 人瀏覽過

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

C#有效率地讀取大型文字檔案中的特定行

需要從大型文字檔案讀取特定行,避免將整個檔案儲存為字串陣列的記憶體密集型解決方案。以下方法可以實現:

方法一:位元組偏移法

  • 計算目標行在檔案中的位元組偏移量。
  • 使用FileStream.Seek方法將檔案流定位到計算出的偏移量。
  • 使用StreamReader.ReadLine()讀取該行。

方法二:LINQ方法 (適用於.NET 4.0以上版本)

  • 使用File.ReadLines(fileName).Skip(line - 1).Take(1).First()
  • 此方法無需讀取整個檔案即可直接存取單一行。

方法三:自訂行讀取器

  • 建立一個自訂行讀取器,在讀取行之前跳過指定數量的位元組。此方法適用於行號較小的情況,並能有效率地處理。

範例 (方法一)

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

處理結構化檔案

針對結構化文件,可以採用以下策略:

  • 使用File.ReadLines(fileName).Take(25).ToArray()讀取前25行。
  • 解析第17行以決定變數X的值。
  • 使用File.ReadLines(fileName).Skip(25).Take(X).ToArray()讀取接下來的X行。

透過這些方法,您可以有效率地從大型文字檔案中讀取特定行,而無需載入整個檔案到記憶體中。 選擇哪種方法取決於檔案的特定大小、結構和.NET Framework版本。

以上是如何使用 C# 高效存取大型文字檔案中的特定行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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