.NET で大容量のテキスト ファイル (1 GB) を読み取る方法
大容量のテキスト ファイルに効率的にアクセスすることは、データ処理において重要なタスクですそして分析。 .NET では、MemoryMappedFile や StreamReader.ReadLine など、大規模なテキスト ファイルを読み取るための手法がいくつかあります。
MemoryMappedFile
.NET 4.0 以降では、MemoryMappedFile は最適化された大きなファイルの読み取りパフォーマンス。メモリマップされたファイルを作成し、中間バッファリングなしでファイルに直接メモリアクセスできるようにします。これにより、複数のディスク読み取りの必要性がなくなり、パフォーマンスが大幅に向上します。
MemoryMappedFile を使用するには:
using System.IO.MemoryMappedFiles; public static void ReadTxtFileUsingMemoryMappedFile() { string filePath = string.Empty; // Get file path from user or other source using (MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(filePath)) { byte[] buffer = new byte[mmf.Capacity]; mmf.CreateViewAccessor().ReadArray(0, buffer, 0, buffer.Length); string data = System.Text.Encoding.UTF8.GetString(buffer); // Parse or process the data } }
StreamReader.ReadLine
.NET 4.0 を使用していない場合、またはより単純なアプローチを希望する場合は、StreamReader.ReadLine を利用できます。このメソッドは、ファイルからテキスト行を読み取り、それを文字列として返します。 MemoryMappedFile よりも遅い場合がありますが、簡単で信頼性の高いオプションです。
StreamReader.ReadLine を使用するには:
using System.IO; public static void ReadTxtFileUsingStreamReader() { string filePath = string.Empty; // Get file path from user or other source using (StreamReader sr = new StreamReader(filePath)) { string line; while ((line = sr.ReadLine()) != null) { // Parse or process the line } } }
最適なアプローチの選択は、特定の要件によって異なります。パフォーマンスが重要であり、.NET 4.0 を使用している場合は、MemoryMappedFile を強くお勧めします。それ以外の場合、StreamReader.ReadLine は、大量のテキスト ファイルを読み取るためのシンプルで信頼性の高いソリューションを提供します。
以上が.NET で 1GB のテキスト ファイルを効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。