1. 序章

このクイックチュートリアルでは、Javaでユーザーの入力と出力にコンソールを使用するいくつかの方法を示します。

入力を処理するためのScannerクラスのいくつかのメソッドを見てから、System.outを使用した簡単な出力をいくつか示します。

最後に、Java6以降で使用可能なConsoleクラスをコンソールの入力と出力の両方に使用する方法を説明します。

2. System.inからの読み取り

最初の例では、 java .utilパッケージのScannerクラスを使用して、System.in から入力を取得します—「標準」入力ストリーム:

Scanner scanner = new Scanner(System.in);

nextLine()メソッドを使用して、入力の行全体をString として読み取り、次の行に進みましょう。

String nameSurname = scanner.nextLine();

next()メソッドを使用して、ストリームから次の入力トークンを取得することもできます。

String gender = scanner.next();

数値入力を期待している場合は、nextInt()を使用して次の入力をint プリミティブとして取得できます。同様に、nextDouble()を使用してdouble型の変数を取得できます。 :

int age = scanner.nextInt();
double height = scanner.nextDouble();

スキャナークラスは、次のトークンが対応するデータ型として解釈できる場合にtrueを返す hasNext_Prefix()メソッドも提供します。

たとえば、 hasNextInt() メソッドを使用して、次のトークンを整数として解釈できるかどうかを確認できます。

while (scanner.hasNextInt()) {
    int nmbr = scanner.nextInt();
    //...
}

また、 hasNext(Pattern pattern)メソッドを使用して、次の入力トークンがパターンと一致するかどうかをチェックできます。

if (scanner.hasNext(Pattern.compile("www.baeldung.com"))) {         
    //...
}

Scanner クラスを使用する以外に、 System.inでInputStreamReaderを使用して、コンソールから入力を取得することもできます。

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

次に、入力を読み取り、それを整数に解析できます。

int i = Integer.parseInt(buffReader.readLine());

3. System.outへの書き込み

コンソール出力には、 System.out — OutputStreamのタイプであるPrintStreamクラスのインスタンスを使用できます。

この例では、コンソール出力を使用して、ユーザー入力のプロンプトを提供し、ユーザーに最終的なメッセージを表示します。

println()メソッドを使用して文字列を出力し、行を終了しましょう

System.out.println("Please enter your name and surname: ");

または、 print()メソッドを使用できます。これはprintln()と同様に機能しますが、行を終了することはありません

System.out.print("Have a good");
System.out.print(" one!");

4. 入出力にConsoleクラスを使用する

JDK 6以降では、java.ioパッケージのConsoleクラスを使用して、コンソールの読み取りと書き込みを行うことができます。

Console オブジェクトを取得するには、 System.console()を呼び出します。

Console console = System.console();

次に、 ConsoleクラスのreadLine()メソッドを使用してコンソールに行を書き込み、コンソールから行を読み取ります。

String progLanguauge = console.readLine("Enter your favourite programming language: ");

パスワードなどの機密情報を読み取る必要がある場合は、 readPassword()メソッドを使用して、ユーザーにパスワードの入力を求め、エコーを無効にしてコンソールからパスワードを読み取ることができます

char[] pass = console.readPassword("To finish, enter password: ");

また、 Consoleクラスを使用して、コンソールに出力を書き込むこともできます。たとえば、 String 引数を指定したprintf()メソッドを使用します。

console.printf(progLanguauge + " is very interesting!");

5. 結論

この記事では、いくつかのJavaクラスを使用してコンソールユーザーの入力と出力を実行する方法を示しました。

いつものように、このチュートリアルのコードサンプルはGitHub提供されています。