大型文字檔案的按行選擇性讀取
問題:
如何從大型文字檔案讀取並儲存特定行,而不使用字串陣列?
背景:
提供的文字檔案具有結構化格式:前 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中文網其他相關文章!