0

Console クラスを使用したユーザー入力の読み取りに問題があります。

このreadLineメソッドは、新しい行が入力されるまで、入力されたすべての入力を読み取ります。その後、後で返される入力を実際に読み取ります (2 回目の新しい行を入力した後)。

これは入力バッファリングと関係があるのでしょうか。Console オブジェクトに改行記号を書き込もうとしました。

cons.writer ().println (System.getProperty ("line.separator"));

読もうとする前に、それは助けにはなりませんでした。

そのメソッドのために Console クラスを使用しますreadPassword(これには同じ問題があります)。

Console cons = System.console();
username = String(cons.readLine(format, message));
password = String(cons.readPassword(format, message));

また、ユーザー名とパスワードが正常になるまで、このコードがループで実行されることも付け加えておく必要があります。

最初の反復を除くすべての反復で、このコードは正常に機能します。

4

1 に答える 1

0

あなたは正しいです。readLine()行を読み取り、行は改行で終了し、改行readLine()または EOS を取得するまでブロックします。その動作を望まない場合は、 を呼び出さないでくださいreadLine()

于 2012-07-09T09:56:02.450 に答える