多かれ少なかれ次のようなコードがあります。
while(scanner.hasNext())
{
if(scanner.findInLine("Test") !=null) {
//do some things
}else{
scanner.nextLine();
}
}
これを使用して、〜 10MB のテキスト ファイルを解析しています。問題は、while() と scanner.nextLine() にブレークポイントを設定すると、スキャナの位置 (デバッグ ウィンドウ内) がゼロに戻ることがあるということです。findInLine() の正規表現はゼロから始まり、ある程度のテキストを調べて位置を進め、ランダムにゼロに戻されるため、これがある種のループの爆発を引き起こしていると思います。 -すべてのテキストを再度解析します。
それを引き起こしている可能性のあるアイデアはありますか?私はこれを正しい方法でやっていますか?
ありがとう
いくつかの追加情報:
Scanner は InputStream からインスタンス化されます。デバッグ後、スキャナが使用する HeapCharBuffer があり、一度に 1024 文字しか許可されず、リセットされるようです。これを回避する方法、または別の方法はありますか? スキャンできる文字数が少ないようです。
デレク