私は現在、約50000行のテキストファイルを読み取るアプリケーションを開発しています。行ごとに、特定の文字列が含まれているかどうかを確認する必要があります。
現時点では、従来のSystem.IO.StreamReader
方法でファイルを 1 行ずつ読み込んでいます。
問題は、テキスト ファイルのサイズが毎回変わることです。いくつかのテスト パフォーマンスを行ったところ、ファイル サイズが大きくなると、1 行の読み取りに時間がかかることに気付きました。
例えば :
5000行
のtxtファイルの読み込み:0:40 10000行のtxtファイルの読み込み:2:54
2 倍の大きさのファイルを読み取るには、4 倍の時間がかかります。100000 行のファイルを読み取るのにどれだけの時間がかかるか想像できません。
これが私のコードです:
using (StreamReader streamReader = new StreamReader(this.MyPath))
{
while (streamReader.Peek() > 0)
{
string line = streamReader.ReadLine();
if (line.Contains(Resources.Constants.SpecificString)
{
// Do some action with the string.
}
}
}
状況を回避する方法はありますか: ファイルが大きい = 1 行を読み取る時間が長くなりますか?