11

授業について読んConsoleでいて、一番最初の行に書いてありました

Java 6 の新機能であり、コマンド ラインから実行Java SE 6している場合、通常はコンソール クラス オブジェクトを使用しています。

つまり、コマンドラインからコンソールクラスを暗黙的に使用していることを意味します??

次に、コンソール クラスの詳細を探し始めたところ、Java のコンソール クラスからの入力コンソールリンクが見つかりました。それで、いくつかのポイントを結論付けました

  1. コンソール クラスは、IDE の外部でのみ使用できます。System.console().readLine();
  2. Consoleクラスは、エコーを無効にしてコンソールからパスワードまたはパスフレーズを読み取りますreadPassword()

ただし、コンソールから入力を読み取るためのScannerクラスとBufferedReaderJava 5クラスがあり、それは よりも前に追加されました。それで、セキュリティ上の理由だけでConsoleクラスが追加されましたJava 6か?または、このクラスを使用する他の利点はありますか。

Consoleクラスの詳細を共有できる人はいますか?

4

3 に答える 3

4

Console クラスは、プロセス コンソール (通常、Unix システムでは /dev/console) から直接読み取ります。コンソールは、コマンドの起動時にリダイレクトできないという点で System.in とは異なります。コンソールからの読み取りでは、入力された文字をエコーするかどうかを制御できるため、パスワードの読み取りにも使用されます。

このクラスの詳細を明確にするために、Unix システムのコンソールと標準入力について読んでください (これは通常 Unix のものであり、Windows システムにどのようにマップされるかはよくわかりません)。

最後に、Scanner は任意の入力 (ファイル、ストリーム、またはコンソール自体) から読み取ることができるため、コンソールとは異なります。

于 2012-12-26T11:17:45.570 に答える
2

Consoleクラスは、コンソール入力を処理するためのプラットフォームに依存しない方法を実装しようとします。すべてのOSには何らかの形でコンソールがありますが、実装は静かに異なります。したがって、コンソールクラスは、パスワード入力などにアクセスするための独立したランタイムクラスからのJavaプラットフォームを提供します。

于 2012-12-26T11:19:34.917 に答える
1

仮想マシンにコンソールがあるかどうかは、基盤となるプラットフォームと、仮想マシンが呼び出される方法に依存します。標準入出力ストリームをリダイレクトせずに対話型コマンド ラインから仮想マシンを起動すると、そのコンソールが存在し、通常、仮想マシンを起動したキーボードとディスプレイに接続されます。たとえば、バックグラウンド ジョブ スケジューラによって仮想マシンが自動的に起動される場合、通常、仮想マシンにはコンソールがありません。

Javaでコンソールクラスから入力を取得する方法は?

于 2012-12-26T11:16:05.940 に答える