JavaのConsoleクラスを使ってキーボードからデータを読み込む方法
JavaのConsoleクラスは、コンソール(キーボードや画面)デバイスとの間でデータを読み書きするために使用されるクラスです。このクラスには、キーボードから1行分の入力を読み取るreadLine()メソッドが用意されており、System.console()メソッドを呼び出すことでConsoleクラスのオブジェクトを取得できます。
注意: このプログラムをIDEなどの非対話型環境で実行すると、正しく動作しません。これは、System.console()が対話的なコンソールが存在しない環境ではnullを返すためです。実行前にその点を考慮したチェック処理を入れておくと安全です。
サンプルプログラム
以下のJavaプログラムは、Consoleクラスを使用してユーザーから名前・年齢・割合・国籍・成績といったデータを入力として受け取り、それらをもとにStudentオブジェクトを生成して詳細情報を表示します。
readLine()メソッドは常に文字列(String)を返すため、数値や真偽値が必要な場合は、Integer.parseInt()、Float.parseFloat()、Boolean.parseBoolean()などを使って適切な型へ変換している点に注目してください。また、成績(char型)については、読み取った文字列をtoCharArray()で文字配列に変換し、先頭の1文字を取り出しています。
import java.io.BufferedReader;
import java.io.Console;
import java.io.IOException;
import java.io.InputStreamReader;
class Student {
String name;
int age;
float percent;
boolean isLocal;
char grade;
Student(String name, int age, float percent, boolean isLocal, char grade) {
this.name = name;
this.age = age;
this.percent = percent;
this.isLocal = isLocal;
this.grade = grade;
}
public void displayDetails() {
System.out.println("Details..............");
System.out.println("Name: "+this.name);
System.out.println("Age: "+this.age);
System.out.println("Percent: "+this.percent);
if(this.isLocal) {
System.out.println("Nationality: Indian");
}else {
System.out.println("Nationality: Foreigner");
}
System.out.println("Grade: "+this.grade);
}
}
public class ReadData {
public static void main(String args[]) throws IOException {
Console console = System.console();
if (console == null) {
System.out.println("Console is not supported");
System.exit(1);
}
System.out.println("Enter your name: ");
String name = console.readLine();
System.out.println("Enter your age: ");
int age = Integer.parseInt(console.readLine());
System.out.println("Enter your percent: ");
float percent = Float.parseFloat(console.readLine());
System.out.println("Are you local (enter true or false): ");
boolean isLocal = Boolean.parseBoolean(console.readLine());
System.out.println("Enter your grade(enter A, or, B or, C or, D): ");
char grade = console.readLine().toCharArray()[0];
Student std = new Student(name, age, percent, isLocal, grade);
std.displayDetails();
}
}
実行結果
プログラムを実行すると、順番に入力を求められ、最後に入力内容に基づく学生の詳細情報が出力されます。
Enter your name: Krishna Enter your age: 26 Enter your percent: 86 Are you local (enter true or false): true Enter your grade(enter A, or, B or, C or, D): A Details.............. Name: Krishna Age: 26 Percent: 86.0 Nationality: Indian Grade: A
-
JavaでCSVファイルを読み込む方法|BufferedReaderによる基本的なデータ読み取り手順
CSVとは「Comma Separated Values(カンマ区切り値)」の略で、テキスト形式のデータファイルの一種です。CSVファイルでは、1行ごとに複数の項目がカンマ(,)で区切られて記録されており、拡張子は「.csv」として保存されます。表形式のデータを扱う際に広く利用されている、シンプルで汎用性の高いフォーマットです。 JavaでCSVファイルを読み込む仕組み JavaでCSVファイルを読み込むには、BufferedReaderクラスのreadLine()メソッドを使用するのが基本的な方法です。このメソッドを使うと、ファイルの内容を1行ずつ順番に読み取ることができます。 読み取った各
-
Javaでプロパティファイルからデータを読み取る方法を解説
JavaのPropertiesクラスは、Hashtableクラスのサブクラスであり、永続化可能なプロパティの集合(プロパティセット)を表します。Propertiesオブジェクトはストリームへ保存したり、ストリームから読み込んだりすることができます。また、プロパティリスト内の各キーとそれに対応する値は、どちらも文字列型として扱われます。Javaでは、Propertiesファイルを使うことでアプリケーションの設定情報を外部化し、キーと値(key-value)のペアとして管理できます。Propertiesクラスが提供するload()メソッドを使用すると、.propertiesファイルに記述されたキー