首頁 > 後端開發 > C++ > 如何在不將整個文件載入到記憶體的情況下高效存取文字檔案中的特定行?

如何在不將整個文件載入到記憶體的情況下高效存取文字檔案中的特定行?

DDD
發布: 2025-01-15 08:01:46
原創
693 人瀏覽過

How Can I Efficiently Access a Specific Line in a Text File Without Loading the Entire File into Memory?

高效率讀取文字檔案指定行,避免記憶體佔用

本文介紹幾種高效率讀取文字檔案指定行的方法,無需將整個檔案載入記憶體。

.NET 4.0 以上版本

.NET 4.0 及更高版本可以使用跳過行的方法:

<code>string line = File.ReadLines(FileName).Skip(14).Take(1).First();</code>
登入後複製

此方法直接讀取第 15 行,而不會將整個檔案載入記憶體。

.NET 4.0 以下版本

在 .NET 4.0 之前,需要逐行跳過的方法:

<code>string GetLine(string fileName, int line)
{
   using (var sr = new StreamReader(fileName)) {
       for (int i = 1; i < line; i++)
          sr.ReadLine();
       return sr.ReadLine();
   }
}</code>
登入後複製

此方法僅讀取所需行,從而減少記憶體消耗。

注意事項

雖然跳過行的方法避免了將整個文件儲存在記憶體中,但對於存取文件末尾附近的行,效率可能會降低。此外,檔案結構必須允許精確確定行號,而不能依賴可能發生變化的行數。

以上是如何在不將整個文件載入到記憶體的情況下高效存取文字檔案中的特定行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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