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