Javaでユーザー入力を取得するには、どちらがより良い方法ですか?
reader = new BufferedReader(new InputStreamReader(System.in));
またはコンソールを使用して->Console c = System.console();
2つとどちらを使用するかの違いは何ですか。または、これら2つ以外のより良い方法はありますか?
Javaでユーザー入力を取得するには、どちらがより良い方法ですか?
reader = new BufferedReader(new InputStreamReader(System.in));
またはコンソールを使用して->Console c = System.console();
2つとどちらを使用するかの違いは何ですか。または、これら2つ以外のより良い方法はありますか?
コンソールは最近Java(Java 6)に導入され、コマンドラインの読み取りと書き込みが簡単になりました。したがって、私はコンソールを使用します。
コンソールからユーザー入力を取得する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つの間でコンソールをお勧めします
それらはほとんど同じですが、コンソールにはユーザーからの情報(パスワードなど)を安全に読み取るための追加のメソッドがあり、基盤となるプラットフォームが実際にコンソール操作をサポートしているか、非対話型で起動されているかについて、より直感的な結果を返します環境
私見彼らは完全に異なっています。ドキュメントが言うように:
現在のJava仮想マシンに関連付けられている文字ベースのコンソールデバイス(存在する場合)にアクセスするためのメソッド。
したがって、実装はOS固有であり、プラットフォームに依存しません(存在する場合と存在しない場合があります)。
Consolを使用すると、stdinから読み取ることもできません。
echo 123 | java Test
テストがコンソールを使用している場合、それは機能しません。したがって、ユーザーはコンソールから入力を提供する必要があります。