.NET で大きなテキスト ファイルを効率的に読み取る
大規模なテキスト ファイルを処理する場合、行ごとに読み取るパフォーマンスが重要になります。この記事では、.NET で 1 GB のテキスト ファイルを読み取る最適な方法について説明します。
StreamReader の使用
.NET でテキスト ファイルを読み取るために広く使用されている方法は、StreamReader です。 .ReadLine。ただし、これはファイル全体をメモリに読み取るため、リソースを大量に消費する可能性があるため、大きなファイルにとっては最適なアプローチではありません。 .NET 4.0 以降では、MemoryMappedFile の使用を検討してください。このクラスは、大きなファイルを効率的に処理するために特別に設計されています。これにより、ファイルの一部にメモリからアクセスできるようにするメモリ マップト ファイルを作成できます。これにより、ファイル全体をメモリに読み取るオーバーヘッドが回避され、パフォーマンスが大幅に向上します。
コード サンプル
次のコードは、次のコードを使用して大きなテキスト ファイルを読み取る方法を示しています。 MemoryMappedFile:
結論
小さいテキスト ファイルの場合は StreamReader.ReadLine で十分ですが、大きなファイルの場合は MemoryMappedFiles の方が大幅にパフォーマンスが向上します。ファイル全体をメモリにロードするオーバーヘッドを回避することで、より高速かつ効率的な処理が可能になります。using System.IO.MemoryMappedFiles; // Create a memory-mapped file object MemoryMappedFile mmf = MemoryMappedFile.CreateFromFile(filePath, FileMode.Open, "MyMappedFile"); // Create a memory-mapped view to the file contents MemoryMappedViewAccessor view = mmf.CreateViewAccessor(); // Read the file line by line using a byte array byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = view.Read(buffer, 0, buffer.Length)) != 0) { // Convert the buffer to a string string line = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead); // Process the line as needed }
以上が.NET で大きなテキスト ファイルを効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。