ホームページ > バックエンド開発 > C++ > .NET で大きなテキスト ファイルを効率的に読み取るにはどうすればよいですか?

.NET で大きなテキスト ファイルを効率的に読み取るにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-05 10:53:41
オリジナル
525 人が閲覧しました

How Can I Efficiently Read Large Text Files in .NET?

.NET での大きなテキスト ファイルの読み取り: 効率的なアプローチの探索

大きなテキスト ファイルの操作には、膨大な量のデータを処理する効率的なテクニックが必要です。一般的なシナリオの 1 つは、1 GB のテキスト ファイルを 1 行ずつ読み取ることです。このガイドでは、このタスクに最適な方法を説明します。

StreamReader.ReadLine()

StreamReader は、テキスト ファイルを読み取るための一般的なアプローチです。 ReadLine() メソッドを使用すると、ファイルの行を反復処理できます。ただし、大きなファイルの場合、このメソッドはファイル全体をメモリに読み取るため、かなり遅くなる可能性があります。

MemoryMappedFile

.NET 4.0 以降で使用可能な場合は、 MemoryMappedFile は、特に大きなファイルを処理するために設計された推奨クラスです。ファイルをメモリに mmap し、ファイル全体をメモリにロードせずにその内容に直接アクセスできるようにします。

コード例

次のコード例は、MemoryMappedFile の使用方法を示しています。大きな文章を読むにはfile:

using System.IO.MemoryMappedFiles;
...

// Open the file
MemoryMappedFile mappedFile = MemoryMappedFile.CreateFromFile("largeFile.txt", FileMode.Open, null, 1024 * 1024 * 1024); // 1 GB buffer

// Create a view of the file
MemoryMappedViewAccessor accessor = mappedFile.CreateViewAccessor();

// Read the file
byte[] lineBytes = new byte[1024];
for (long i = 0; i < mappedFile.Length; i += 1024)
{
    accessor.ReadArray(i, lineBytes, 0, 1024);
    Console.WriteLine(Encoding.UTF8.GetString(lineBytes));
}
ログイン後にコピー

結論

大きなテキスト ファイルを扱う場合、MemoryMappedFile は StreamReader.ReadLine() と比較してより効率的なソリューションを提供し、ファイルへの直接アクセスを可能にします。ファイル全体をメモリにロードせずにデータを保存します。互換性上の理由から、StreamReader.ReadLine() は、以前のバージョンの .NET でも引き続き実行可能なオプションです。

以上が.NET で大きなテキスト ファイルを効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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