このプログラムを実行するためには Person クラスを定義しておく必要がある。
// 人物データを読んで表示するプログラム: Personクラスを使用 // 以下の宣言をクラス定義の前に書いておくと、 // java.io.BufferedReaderをBufferedReaderと略記できる。 import java.io.BufferedReader; class ReadAndShow { public static void main(String[] args) { // "members"という名前のファイルから読む準備 BufferedReader input; try { input = new BufferedReader (new java.io.InputStreamReader (new java.io.FileInputStream("members"))); } catch (Exception e) { input = null; // ファイルが見つからなかった場合 } // 最初に人数が書いてあるのでそれを読んで捨てる int numberOfPersons = readInteger(input); Person p = readPerson(input); // ファイルから人物データを読む System.out.println(personToString(p)); // データを表示する } // ファイルから1行読んで文字列として返す static String readLine(BufferedReader input) { try { return input.readLine(); // 1行読む } catch (Exception e) { return ""; // 正しくない場合は空文字列にする } } // ファイルから1行読んで整数に変換して返す static int readInteger(BufferedReader input) { // Integer.parseInt(x) は string x を整数に変換する return Integer.parseInt(readLine(input)); } // ファイルから1行読んで実数に変換して返す static double readDouble(BufferedReader input) { // new Double(x) は文字列xから実数オブジェクトを作る // doubleValueメソッドは、実数オブジェクトから実数値をとり出す return new Double(readLine(input)).doubleValue(); } // ファイルから人物データを1人分読んでPersonオブジェクトを作って返す static Person readPerson(BufferedReader input) { Person p = new Person(); // Personオブジェクトを作る // 以下、人物の各情報を読んでPersonオブジェクトの中にセットする p.name = readLine(input); // 名前 p.birthYear = readInteger(input); // 生まれた年 p.birthMonth = readInteger(input); // 生まれた月 p.birthDate = readInteger(input); // 生まれた日 p.height = readDouble(input); // 身長 p.weight = readDouble(input); // 体重 return p; // 完成したオブジェクトを返す } // 人物データを表示する static String personToString(Person p) { return ("名前: " + p.name + ", 誕生日:" + p.birthYear + "-" + p.birthMonth + "-" + p.birthDate + ", 身長:" + p.height + ", 体重:" + p.weight); } }
Hidehiko Masuhara, November 2000