首頁 >後端開發 >C++ >如何在不使用字串數組的情況下高效地從大型文字檔案中讀取特定行?

如何在不使用字串數組的情況下高效地從大型文字檔案中讀取特定行?

Susan Sarandon
Susan Sarandon原創
2025-01-15 09:21:50940瀏覽

How Can I Efficiently Read Specific Lines from a Large Text File Without Using String Arrays?

大型文字檔案的按行選擇性讀取

問題:

如何從大型文字檔案讀取並儲存特定行,而不使用字串陣列?

背景:

提供的文字檔案具有結構化格式:前 25 行包含訊息,之後是數量可變的行(數量由第 17 行的值決定)。目標是從檔案中提取並儲存前 25 行作為獨立值,並將後續行儲存為數組。

解:

.NET 4.0 方法:

如果使用 .NET 4.0 或更高版本,ReadLines 方法可以直接存取行。要讀取第 15 行:

<code class="language-csharp">string line = File.ReadLines(FileName).Skip(14).Take(1).First();</code>

通用方法:

對於早期 .NET 版本或如果無法避免順序讀取行:

<code class="language-csharp">string GetLine(string fileName, int line)
{
   using (var sr = new StreamReader(fileName))
   {
       for (int i = 1; i <= line; i++)
       {
           if (sr.ReadLine() == null) return null; // 处理文件结尾
           if (i == line) return sr.ReadLine();
       }
       return null;
   }
}</code>

此方法讀取目標行之前的所有行。

注意:

通常情況下,不能假設可以刪除前 n 行而無需重新讀取和重寫檔案。但是,此處提供的解決方案不需要刪除行。

以上是如何在不使用字串數組的情況下高效地從大型文字檔案中讀取特定行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn