StudentLoader.java



/**
 * 複数のStudentオブジェクトを
 * ファイルへから読み込むクラス
 */
import java.io.*;
import java.util.*;
public class StudentLoader {

 /** ファイルからオブジェクトを読み込むメソッド */
    public static Student[] loadStudents( File file )
                             throws IOException, Exception {
        try {
            ArrayList list = new ArrayList();
            FileInputStream fis = new FileInputStream( file );
            ObjectInputStream ois = new ObjectInputStream( fis );
            while( fis.available() != 0 ) {
                Student student = (Student)ois.readObject();
                list.add( student );
            }
            ois.close();
            fis.close();
            Student[] students = (Student[])list.toArray(
                              new Student[ list.size() ] );
            return students;
        }
        catch( IOException e ) {  // 入出力のエラーが発生
            throw e;
        }
        catch( Exception e ) {   // 入出力以外のエラーが発生
            throw e;
        }
    }

 /** 最初に呼び出されるメソッド */
    public static void main( String argv[] ) {
        try {
            File file = new File( "Student.ser" );
            Student[] students
                 = loadStudents( file );
            for( int i=0; i<students.length; i++ )
                System.out.println(
                    students[i].number + "," + students[i].name );
        }
        catch( IOException e ) {  // その他の入出力エラーが発生
            System.err.println("IO Error....");
            System.exit(-1);
        }
        catch( Exception e ) {   // 入出力以外のエラーが発生
            System.err.println("Error....");
            System.exit(-1);
        }
    }
}