1

Javaでユーザー入力を取得するには、どちらがより良い方法ですか?

reader = new BufferedReader(new InputStreamReader(System.in));

またはコンソールを使用して->Console c = System.console();

2つとどちらを使用するかの違いは何ですか。または、これら2つ以外のより良い方法はありますか?

4

4 に答える 4

2

コンソールは最近Java(Java 6)に導入され、コマンドラインの読み取りと書き込みが簡単になりました。したがって、私はコンソールを使用します。

于 2011-01-05T09:22:25.947 に答える
1

コンソールからユーザー入力を取得するScannerクラスをお勧めします

Scanner in = new Scanner(System.in);

in.next();
int i = in.nextInt();
float f = in.nextFloat();
double d = in.nextDouble();    
String s = in.nextLine();

と他の美しい方法

しかし、これら2つの間でコンソールをお勧めします

于 2011-01-05T09:36:32.213 に答える
0

それらはほとんど同じですが、コンソールにはユーザーからの情報(パスワードなど)を安全に読み取るための追加のメソッドがあり、基盤となるプラットフォームが実際にコンソール操作をサポートしているか、非対話型で起動されているかについて、より直感的な結果を返します環境

于 2011-01-05T09:28:09.870 に答える
0

私見彼らは完全に異なっています。ドキュメントが言うように:

現在のJava仮想マシンに関連付けられている文字ベースのコンソールデバイス(存在する場合)にアクセスするためのメソッド。

したがって、実装はOS固有であり、プラットフォームに依存しません(存在する場合と存在しない場合があります)。

Consolを使用すると、stdinから読み取ることもできません。

echo 123 | java Test

テストがコンソールを使用している場合、それは機能しません。したがって、ユーザーはコンソールから入力を提供する必要があります。

于 2011-01-05T09:48:37.703 に答える