その他

Javaマスターへの道: ステップ6 – 標準入出力とエラー出力の理解

その他
この記事は約4分で読めます。

はじめに

株式会社インプルの奈良です。

前回は、①代入と初期化、②型変換、③複合代入演算子についてまとめました。

今回は、①標準出力、標準入力、標準エラー出力、②標準入出力のオブジェクト(System.out System.in)について解説します。

Javaプログラミングの学習を進める上で重要な要素として、標準入出力とエラー出力の理解が必要です。これらはプログラムがユーザーや他のプログラムと通信するための基本的な手段です。

この記事は、Javaについて0から学んでいくため、プログラミング初学者の方の参考になれば幸いです。

標準出力、標準入力、標準エラー出力について

標準入出力は、標準出力、標準入力、標準エラー出力の3つに分けられます。

  • 標準出力(stdout):プログラムからユーザー(または別のプログラム)への主要な出力チャンネルです。Javaでは、System.out.println()などのメソッドを用いて標準出力に書き出すことができます。
  • 標準入力(stdin):ユーザー(または別のプログラム)からプログラムへの主要な入力チャンネルです。Javaでは、Scannerクラスを使って標準入力から読み取ることができます。
  • 標準エラー出力(stderr):エラーメッセージや診断メッセージを出力するためのチャンネルです。Javaでは、System.err.println()を使ってエラーメッセージを出力することができます。
奈良
奈良

こうした入出力の概念はストリームとも呼ばれます。

標準入出力のオブジェクト(System.out System.in)について

Javaでは、Systemクラスのoutinという静的フィールドを通じて標準出力と標準入力を扱います。

System.outとは

System.outとは、PrintStreamオブジェクトであり、標準出力に書き出すためのメソッドです。

例えば、System.out.println("Hello, World!");というコードは”Hello, World!”というメッセージを標準出力に出力します。

System.inとは

System.inとは、InputStreamオブジェクトであり、標準入力からの読み込みを行います。ただし、直接System.inを使って読み取るよりも、Scannerクラスを利用する方が便利であることが多いです。

具体的に説明すると、Javaの標準APIに用意されている、java.util.Scannerクラスを使用すると、標準入力からユーザーが入力したデータを読み込むプログラムが作成できます。

import java.util.Scanner;

Scanner scanner = new Scanner(System.in); // Scannerのインスタンスを作成

System.out.print("名前を入力してください: "); // 文字列(名前を入力してください:)を出力
String name = scanner.nextLine();  // 文字列の読み取り

System.out.print("年齢を入力してください: "); // 文字列(年齢を入力してください:)を出力
int age = scanner.nextInt();  // 整数の読み取り

scanner.close(); // Scannerオブジェクトを閉じる

nextLine()メソッドは次の行全体を文字列として読み取ります。nextInt(), nextDouble(), nextBoolean()など(下記参照)、他のメソッドを使用して異なる種類の入力を読み取ることができます。

  • next()・・・入力の次のトークンをString型として取得
  • nextInt()・・・入力の次のトークンをint型として取得
  • nextLong()・・・入力の次のトークンをlong型として取得
  • nextDouble()・・・入力の次のトークンをdouble型として取得
奈良
奈良

トークンとは、前後を区切り文字(半角スペース、改行文字、タブなど)で区切られた単位のこと指します。難しい場合は、next+取得したい型()で、入力を読み取ることができると覚えておきましょう!

さいごに

今回は、①標準出力、標準入力、標準エラー出力、②標準入出力のオブジェクト(System.out System.in)について解説しました。

次回は、条件分岐(if文、else文、論理演算子、文字列の比較)について解説します。