Javaでコンソールから入力を読み取る方法【ScannerとBufferedReaderの使い方】
Javaでは、標準入力(コンソール)からデータを読み取るための方法がいくつか用意されています。この記事では、代表的な2つの手法——「Scannerクラス」と「BufferedReaderクラス」——を使った入力の読み取り方を、サンプルコードと実行結果とともにわかりやすく解説します。
Scannerクラスを使った入力の読み取り
まずは、最も手軽で広く使われているScannerクラスの例から見ていきましょう。
サンプルコード
import java.util.Scanner;
public class Demo{
public static void main(String args[]){
Scanner my_scan = new Scanner(System.in);
String my_str = my_scan.nextLine();
System.out.println("The string is "+my_str);
int my_val = my_scan.nextInt();
System.out.println("The integer is "+my_val);
float my_float = my_scan.nextFloat();
System.out.println("The float value is "+my_float);
}
}
実行結果
The string is Joe The integer is 56 The float value is 78.99
Demoというクラスの中にmainメソッドが定義されています。まず、System.in(標準入力)を引数としてScannerクラスのインスタンスmy_scanを生成します。その後、以下のメソッドを使って各種データを読み取っています。
- nextLine():文字列を1行単位で読み取る
- nextInt():整数値(int型)を読み取る
- nextFloat():浮動小数点数(float型)を読み取る
読み取った値は、System.out.println()によってコンソールに出力されます。Scannerを使えば、文字列・整数・小数など、さまざまな型のデータを直感的に取得できるのが大きな魅力です。
BufferedReaderクラスを使った入力の読み取り
次に、BufferedReaderクラスを利用した方法を紹介します。こちらは内部でバッファリングを行うため、効率的に読み取り処理ができるのが特徴です。
サンプルコード
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Demo{
public static void main(String[] args) throws IOException{
BufferedReader my_reader = new BufferedReader(new InputStreamReader(System.in));
String my_name = my_reader.readLine();
System.out.println("The name is ");
System.out.println(my_name);
}
}
実行結果
The name is Joe
ここでもDemoクラスのmainメソッド内で処理を行います。まず、InputStreamReaderでSystem.inをラップし、さらにそれをBufferedReaderで包むことでインスタンスmy_readerを作成します。
readLine()メソッドを呼び出すことで、標準入力から文字列を1行読み込むことができます。なお、BufferedReaderのreadLine()はIOExceptionをスローする可能性があるため、mainメソッドの宣言にthrows IOExceptionを付けておく必要があります。読み込んだ文字列は、コンソールに出力して確認できます。
ScannerとBufferedReaderの使い分けのポイント
- Scanner:nextLine()やnextInt()など多彩なメソッドが用意されており、初心者でも扱いやすい。少量データの読み取りに適しています。
- BufferedReader:バッファリングにより高速な読み取りが可能で、大量のテキストを扱う場合に有利です。ただし、読み取れるのは文字列のみのため、数値として使う場合はInteger.parseInt()などでの型変換が必要になります。
扱うデータの種類や量に応じて、適切なクラスを選択するとよいでしょう。
-
Javaでプロパティファイルからデータを読み取る方法を解説
JavaのPropertiesクラスは、Hashtableクラスのサブクラスであり、永続化可能なプロパティの集合(プロパティセット)を表します。Propertiesオブジェクトはストリームへ保存したり、ストリームから読み込んだりすることができます。また、プロパティリスト内の各キーとそれに対応する値は、どちらも文字列型として扱われます。Javaでは、Propertiesファイルを使うことでアプリケーションの設定情報を外部化し、キーと値(key-value)のペアとして管理できます。Propertiesクラスが提供するload()メソッドを使用すると、.propertiesファイルに記述されたキー
-
【Java】JTextFieldの入力値を読み取ってJListに追加する方法を解説
JListとは JListはJComponentクラスのサブクラスで、ユーザーが単一選択または複数選択を行えるSwingのリストコンポーネントです。ただし、JListクラス自体にはスクロールバーの機能が備わっていないため、スクロールバーを表示したい場合はJScrollPaneクラスと組み合わせて使用します。JScrollPaneでJListをラップすれば、スクロールバーは自動的に管理されます。 DefaultListModelで項目を管理する DefaultListModelクラスは、リストモデルのシンプルな実装を提供しており、JListに表示される項目を管理するために利用できます。Defa