JavaでのコンソールI/O
1前書き
このクイックチュートリアルでは、Javaでユーザー入力と出力にコンソールを使用するいくつかの方法を説明します。
入力を処理するための
Scanner
クラスのメソッドをいくつか見てから、
System.out
を使用して簡単な出力をいくつか示します。
最後に、コンソールの入力と出力の両方に、Java 6以降で使用可能な
Console
クラスを使用する方法を説明します。
2
System.in
から読み取る
最初の例では、
System.in
** からの入力を取得するために
__java.util
packageの
Scanner
__classを使用します – 「標準」入力ストリーム
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();
__Scanner
classは、次のトークンが対応するデータ型として解釈できる場合に
true
を返す**
hasNext
Prefix()____methodsも提供します。
たとえば、
__hasNextInt()
__methodを使用して、次のトークンを整数として解釈できるかどうかを確認できます。
while (scanner.hasNextInt()) {
int nmbr = scanner.nextInt();
//...
}
また、
__ hasNext(パターンパターン)
__メソッドを使用して、次の入力トークンがパターンと一致するかどうかを確認することもできます。
if (scanner.hasNext(Pattern.compile("www.baeldung.com"))) {
//...
}
Scanner
クラスを使用する以外に、**
InputStreamReader
を____System.inと共に使用して、コンソールから入力を取得することもできます。
BufferedReader buffReader = new BufferedReader(new InputStreamReader(System.in));
そして、入力を読み込み、それを整数に解析します。
int i = Integer.parseInt(buffReader.readLine());
3.
System.out
への書き込み
コンソール出力には、
System.out
–
PrintStream
クラスのインスタンス
を使用できます。これは、
OutputStream
の一種です。
この例では、コンソール出力を使用してユーザー入力を促し、最終的なメッセージをユーザーに表示します。
__println()
メソッドを使用して
String__を印刷し、** 行を終了しましょう。
System.out.println("Please enter your name and surname: ");
代わりに、
println()
と同じように動作するが、行を終了させずに**
__print()
__methodを使用することもできます。
System.out.print("Have a good");
System.out.print(" one!");
4入力と出力に
Console
クラスを使用する
JDK 6以降では、
__java.io
packageの
Console
__classを使用して、コンソールから読み書きできます。
Console
オブジェクトを取得するには、
System.console()
を呼び出します。
Console console = System.console();
次に、
__Console
classクラスの
__readLine()メソッドを使用して、
コンソールに1行書き込み、次にコンソールから
1行書き込みます。
String progLanguauge = console.readLine("Enter your favourite programming language: ");
パスワードなどの機密情報を読み取る必要がある場合は、
readPassword()
メソッドを使用してユーザーにパスワードの入力を求め、エコーを無効にしてコンソールからパスワードを読み取ることができます。
char[]pass = console.readPassword("To finish, enter password: ");
Console
クラスを使ってコンソールに出力を書き込むこともできます。
console.printf(progLanguauge + " is very interesting!");
5結論
この記事では、コンソール・ユーザーの入出力を実行するためのいくつかのJavaクラスの使い方を説明しました。
いつものように、このチュートリアルのコードサンプルはhttps://github.com/eugenp/tutorials/tree/master/core-java/src/main/java/com/baeldung/console[over on GitHub]にあります。