0

プログラムでscanner.hasNextLine()を使用しようとすると、そこにとどまってハングします。この問題を解決する方法や、私が使用できる代替手段があるかどうか疑問に思っています。編集:この背後にある理由は、スキャナーからすべてを削除できるようにするためです(スキャナーには1行しかありません)。したがって、スキャナーからすべてを削除する方法があれば、それは簡単です。

4

2 に答える 2

6

これはあなたの質問に答えますか? StackOverFlow:why-does-hasnextline-never-end

そうでない場合は、コードのサンプルをここに置いて、問題が何であるかについてより説明的な回答を得てください。ほとんどの場合、あなたは決して終わらない何かを読んでいます。ファイルまたは文字列がある場合は問題はありませんが、データの一定のストリームを読み取っている場合は、コードの記述方法やスキャナーへの読み取り内容によっては、ハングする可能性があります。

于 2012-04-17T15:42:01.257 に答える
1

のAPIを見てくださいjava.util.scanner(私はそれがあなたが使用しているクラスであると思います)。

http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

hasNextLineドキュメントに注意してください:

このスキャナーの入力に別の行がある場合はtrueを返します。このメソッドは、入力を待っている間にブロックする場合があります。スキャナーは入力を超えて進みません。

(強調鉱山)

したがって、閉じられていない開いているストリームがある場合、別の行が入るか、ストリームが閉じられるまでブロックされます。

于 2012-04-17T15:36:09.337 に答える