3

Java Scanner オブジェクトを使用してテキスト ファイルを解析しています。ファイルの一部を 2 回スキャンする必要があります (コンテンツを一時的に保存する必要がないように、パフォーマンス上の理由から)。

したがって、スキャナーを特定のファイル位置に「巻き戻す」方法はありますか?

または、各インスタンスを個別に使用できるようにスキャナーのクローンを作成する方法はありますか (つまり、互いのファイル位置ポインターを移動しません)。

どうもありがとう、トーマス

編集:

ファイルを 1 回だけスキャンして直接処理することは、明らかにいつでも可能ですが、既存のコード ベースがさらに複雑になるため、ファイルの同じ部分を 2 回スキャンする必要があります。

一言で言えば、ファイルには何千もの論理アイテムが含まれており、それらのいくつかを処理するには、アイテムの最後に格納されている情報をアイテムから開始する必要があります。

4

2 に答える 2

5

必要なときに新しい Scanner インスタンスを作成するだけです。できたとしても、クローンを作成する必要はなく、メリットもありません。「巻き戻し」についても同じです。ファイルを再度読み取る必要がある場合は、新しいスキャナーを作成するだけです。ただし、これがより効率的であると確信しているため、必要なビットを保存することを検討します。

余談ですが、お客様の要件と制限の理由について詳しくお知らせいただくことを検討してください。この情報は、より適切な回答を提供するのに役立ちます。

于 2013-05-15T19:52:07.640 に答える
0

ここから盗まれた: http://answers.yahoo.com/question/index?qid=20081017131128AAUcIow

Java のスキャナーにはファイルの「巻き戻し」メソッドがありませんが、スキャナーを閉じて再度開くことで同じ効果が得られます。

于 2013-05-15T19:54:36.380 に答える