ホームページ > バックエンド開発 > C++ > ファイル全体をメモリにロードせずに、テキスト ファイルの特定の行に効率的にアクセスするにはどうすればよいですか?

ファイル全体をメモリにロードせずに、テキスト ファイルの特定の行に効率的にアクセスするにはどうすればよいですか?

DDD
リリース: 2025-01-15 08:01:46
オリジナル
692 人が閲覧しました

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 より前では、1 行ずつスキップする必要があります:

<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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート