Java
 Computer >> コンピューター >  >> プログラミング >> Java

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

  1. JavaでCSVファイルを読み込む方法|BufferedReaderによる基本的なデータ読み取り手順

    CSVとは「Comma Separated Values(カンマ区切り値)」の略で、テキスト形式のデータファイルの一種です。CSVファイルでは、1行ごとに複数の項目がカンマ(,)で区切られて記録されており、拡張子は「.csv」として保存されます。表形式のデータを扱う際に広く利用されている、シンプルで汎用性の高いフォーマットです。 JavaでCSVファイルを読み込む仕組み JavaでCSVファイルを読み込むには、BufferedReaderクラスのreadLine()メソッドを使用するのが基本的な方法です。このメソッドを使うと、ファイルの内容を1行ずつ順番に読み取ることができます。 読み取った各

  2. Javaでプロパティファイルからデータを読み取る方法を解説

    JavaのPropertiesクラスは、Hashtableクラスのサブクラスであり、永続化可能なプロパティの集合(プロパティセット)を表します。Propertiesオブジェクトはストリームへ保存したり、ストリームから読み込んだりすることができます。また、プロパティリスト内の各キーとそれに対応する値は、どちらも文字列型として扱われます。Javaでは、Propertiesファイルを使うことでアプリケーションの設定情報を外部化し、キーと値(key-value)のペアとして管理できます。Propertiesクラスが提供するload()メソッドを使用すると、.propertiesファイルに記述されたキー