c#テキストファイルを効率的に読み取ります
.NET C#環境では、テキストファイルを1つずつ読み取ることは一般的なタスクです。この記事では、いくつかの異なる方法を調査し、その効率を分析します。
現在のメソッドはを使用し、バッファサイズは128に設定されています。ただし、ベンチマークテストでは、バッファのサイズを1024(デフォルト)または4096(NTFSクラスター)に増やすと、パフォーマンスが大幅に向上することが示されています。次のコードフラグメントは、これを示しています:
StreamReader.ReadLine
<code class="language-csharp">const Int32 BufferSize = 128; using (var fileStream = File.OpenRead(fileName)) using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize)) { String line; while ((line = streamReader.ReadLine()) != null) { // 处理每一行 } }</code>と比較して、内部的に
を使用しますが、パフォーマンスが向上します。イテレーターを使用し、メモリ消費を削減します。
StreamReader
を使用します
StreamReader.ReadLine
はに似ていますが、
<code class="language-csharp">var lines = File.ReadLines(fileName); foreach (var line in lines) // 处理每一行</code>
string.split
は非常に便利ですが、大きなファイルを読むと、次の例に示すように、その速度は大幅に遅くなります。
File.ReadLines
IEnumerable<string>
結論
<code class="language-csharp">var lines = File.ReadAllLines(fileName); for (var i = 0; i < lines.Length; i++) // 处理每一行</code>要するに、テキストファイルを1つずつ読み取るためには、そのシンプルさと効率のために推奨されます。共有オプションをカスタマイズする必要がある場合は、適切なバッファサイズを使用して
を使用することを検討してください。ただし、特定のニーズに最も適したソリューションを決定するために、ベンチマークテストを実行する必要があります。
以上がC#で行ごとにテキストファイルを効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。