Javaにおける標準入力は、プログラムが外部からデータを受け取る重要な方法です。標準入力は、キーボードや他の入力デバイスからのユーザーの入力をプログラムに提供するための仕組み。
Javaプログラムはユーザーからの情報を受け取り、それに基づいて処理ができます。例えば、ユーザーに数字や文字列を入力してもらい、その入力に基づいて演算や処理を行うプログラムを作成する際には、標準入力が不可欠です。
Javaでは、標準入力を扱うために「Scanner」クラスや「BufferedReader」クラスなどのさまざまなメソッドやクラスが提供されています。これらのクラスを使用することで、プログラムはユーザーからの入力を効率的に読み取ることが可能です。標準入力を適切に処理することで、Javaプログラムはより使いやすく、柔軟なものになるでしょう。
ここでは、Javaにおける標準入力や標準出力、必要なクラスメソッドについて解説していきます。
Javaにおける標準入力・出力とは
Javaにおける標準入力とは、キーボードから入力されたデータをプログラム内で利用するために必要。標準出力は、プログラム内で生成されたデータや結果を画面やコンソールに表示するための仕組みです。
Javaにおける標準入力や標準出力の機能は、Javaでのプログラミングにおいて基本となり、多くのプログラムで使用されています。例えば、コンソールアプリケーションにおいてユーザーの入力を受け付け、処理結果を表示する際に利用されているでしょう。
Javaでは、Systemクラスのinとoutオブジェクトによって標準入力・出力が実現されています。System.inはInputStream型であり、標準入力からデータを読み込む際に使用されるでしょう。またSystem.outはPrintStream型であり、標準出力先へデータを出力する際に使用します。
ただし、System.inやSystem.outを直接使うことはあまり推奨されず、ScannerクラスやBufferedReaderクラスを利用することが一般的です。
ここでは、Javaにおける標準入力や標準出力で活用されるクラスメソッドを解説します。
Scannerクラスとは
Scannerクラスは、標準入力からのデータを簡単に読み込むためのクラスです。Java.utilパッケージ内にあります。
このクラスを使用することで、標準入力からのデータを様々な型に変換して読み込むことができます。例えば、整数、浮動小数点数、文字列など、さまざまなデータ型を扱うことが可能です。
Scannerクラスを使用する際には、まずインスタンスを生成し、標準入力を引数として渡します。その後、nextInt(), nextFloat(), nextLine()のようなメソッドを利用してデータを読み込みが可能です。
具体例として、標準入力から整数を読み込むサンプルコードは以下のようになります。
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
これにより、ユーザーが入力した数値をnumという変数に格納することができます。
BufferedReaderクラスとは
BufferedReaderクラスは、Java.ioパッケージにあるクラスで、大量のデータや行単位でのデータを効率的に読み込むために使用されます。
Scannerクラスとは異なり、標準入力以外のストリームからのデータ読み込みにも対応しが可能です。例えば、ファイルやネットワークからのデータ入力にも利用ができます。
BufferedReaderクラスを利用する際には、まずInputStreamReaderクラスのインスタンスを生成し、標準入力やファイル入力などからのデータを引数として渡します。そして、BufferedReaderクラスのインスタンスを生成し、InputStreamReaderインスタンスを引数として渡すことが可能です。
具体例として、標準入力から文字列を行単位で読み込むサンプルコードは以下のようになります。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
このコードにより、ユーザーが入力した文字列をstrという変数に格納することができます。
Javaにおける標準入力・出力の取得方法
Javaにおいて、標準入力と出力を取得する方法はいくつか存在します。まず、標準入力を取得するためには、ScannerクラスやBufferedReaderクラスを使用ができるでしょう。これらのクラスは、コンソールからの入力をプログラム内で利用できます。また、標準出力に関しては、System.out.println()メソッドを使って、コンソールに文字列を出力が可能です。
ここでは、実際の使い方について解説します。
Scannerクラスの使い方
Scannerクラスは、Javaのjava.utilパッケージにあるクラスで、コンソールからの入力を簡単に取得できます。まずは、Scannerクラスをインポートし、次にScannerオブジェクトを作成。
例: import java.util.Scanner;
Scanner sc = new Scanner(System.in);
これで、コンソールから入力を待つ状態になります。入力があった場合、それを取得し、変数に代入ができるでしょう。例えば、整数や文字列を入力したい場合には、nextInt()メソッドやnextLine()メソッドを使用します。
例: int num = sc.nextInt();
String str = sc.nextLine();
また、入力されたデータがあるかどうかを確認するために、hasNext()メソッドやhasNextInt()メソッドも利用できます。最後に、Scannerオブジェクトを閉じることで入力の終了を指定。
例: sc.close();
上記の手順により、Scannerクラスを使って標準入力を取得することができます。
なお、下の記事ではJavaの標準入力・出力について詳しく解説しているので、よければ参考にしてください。
BufferedReaderクラスの使い方
BufferedReaderクラスは、Javaのjava.ioパッケージにあるクラスで、高速な文字列入力を可能にします。まずは、BufferedReaderクラスとInputStreamReaderクラスをインポートし、BufferedReaderオブジェクトを作成。
例: import java.io.BufferedReader;
import java.io.InputStreamReader;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
次に、readLine()メソッドを使用して、コンソールからの入力を1行ずつ取得します。このとき、例外処理を行う必要があるため、try-catchブロックを使いましょう。
例: try {
String line = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
取得した入力を整数に変換する場合は、Integer.parseInt()メソッドを使用します。
例: int num = Integer.parseInt(line);
最後に、BufferedReaderオブジェクトを閉じることで入力の終了を指定します。
例: br.close();
上記の手順により、BufferedReaderクラスを使って標準入力を取得することができます。
なお、下の記事ではJavaの引数について詳しく解説しているので、よければ参考にしてください。
複数入力された値を順番に受け取る方法
複数の値が入力された場合、それらを順番に受け取る方法はプログラムで簡単に実現できます。まずは、入力される値の数を把握し、データを格納するための適切なデータ構造を用意しましょう。例えば、配列やリストなどが適切です。
次に、繰り返し処理(ループ)を使用して、入力される値を一つずつ受け取り、データ構造に格納します。具体的な方法として、forループやwhileループを使うことが一般的です。
各プログラミング言語には、入力値を受け取る際に使用する関数やクラスが存在します。言語によっては、標準入力以外から値を受け取る方法も提供。
結果として、複数の入力された値を順番に受け取り、適切に処理することができます。
Javaの入力値を取得する際の注意点
Javaで入力値を取得する際、幾つかの注意点があります。まず、標準入力を受け取るためにはScannerクラスを使用することが一般的です。Scannerクラスを使用する際に、適切なインポート文(java.util.Scanner)を忘れずに記述しましょう。
また、入力値を取得する際には、データ型に注意が必要です。Scannerクラスは、nextInt()やnextLine()など、様々なデータ型に対応するメソッドを提供します。使用するメソッドを適切に選択し、入力値のデータ型に対応させることが重要です。
さらに、複数の入力値を受け取る際には、ループ処理が必要となります。その際、ループを終了する条件を正しく設定し、適切な終了処理を行うことが大切です。
入力された値を適切に処理し、エラーが発生しないように注意しましょう。例えば、数値の入力を期待している場面で文字列が入力された場合、エラーが発生します。適切な例外処理を行い、エラーが発生した場合でも対応できるようにしましょう。
なお、Javaのnullについてより詳しく知りたい人は次の記事を参考にしてください。
→Javaでnull判定する方法!Optionalクラスの基礎も解説
Javaプログラミングのスキルを活かして収入を増やすなら
なかには、副業での収入獲得やフリーランスへの独立を目的にJavaプログラミングのスキル習得に励んでいる人もいますよね。
ただ、身につけたスキルをどう収入UPに繋げればいいのか、イメージが湧かない人もいるはず。
そんな方は、ぜひフリーランスのミカタをご活用ください。
出典:フリーランスのミカタ
フリーランスのミカタは、平均単価80万円以上の案件を取り揃える、ITエンジニアに特化したフリーランスエージェントです。具体的には、次のような週3回からフルリモートで請け負える案件を豊富に掲載しています。

また希望年収や稼働時間だけでなく、扱うプログラミング言語などを細かく指定して案件を探せるため、自分にあう仕事を見つけやすいサイト仕様になっています。
ただし、上記のような案件は条件として2〜3年の実務経験が求められるケースが多いです。そのため、応募する際はどれくらいの経験が必要なのかを前もってチェックしておきましょう。
フリーランスのミカタを活用すれば、中・長期的な安定収入が得られる案件が見つかりますよ。
どんな案件が掲載されているか気になる人は、下のボタンから自分にあう案件を探してみてください。
まとめ
標準入出力の基本を習得することで、さまざまなシナリオで応用が可能となります。練習を重ね、理解を深めることで、プログラムの標準入出力を自在に操作できるようになるでしょう。経験を重ねることで、入出力処理に関する課題にも対処できるようになります。
この記事を参考にJavaの標準入力や標準出力について理解しておきましょう。
なお、下の記事ではJavaのコンパイルについて詳しく解説しているので、よければ参考にしてください。