StudentSaver.java



/**
 * 複数のStudentオブジェクトを
 * ファイルへ保存するクラス
 */
import java.io.*;
import java.util.*;
public class StudentSaver {

 /** ファイルにオブジェクトを書き込むメソッド */
    public static void saveStudents( File file, Student[] students )
                                        throws IOException {
        try {
            ObjectOutputStream oos
               = new ObjectOutputStream(
                   new FileOutputStream( file ) );
            for( int i=0; i<students.length; i++ )
                oos.writeObject( students[i] );
            oos.close();
        }
        catch( IOException e ) {  // 入出力のエラーが発生
            throw e;
        }
    }

 /** 最初に呼び出されるメソッド */
    public static void main( String argv[] ) {
        try {
            BufferedReader br
                = new BufferedReader(
                    new InputStreamReader( System.in ) );
            ArrayList list = new ArrayList();
            while( true ) {
                System.out.print( "Input Number>> " );
                String number = br.readLine();
                System.out.print( "Input Name>> " );
                String name = br.readLine();
                System.out.print( "Number:" + number
                         + ",Name:" + name + " OK?(y/n)>> " );
                String yesOrNo = br.readLine();
                if( !yesOrNo.startsWith( "y" ) ) continue;
                Student st = new Student(
                           Integer.parseInt( number ), name );
                list.add( st );
                System.out.print( "Continue?(y/n)>> " );
                yesOrNo = br.readLine();
                if( !yesOrNo.startsWith( "y" ) ) break;
            }
            Student[] students = (Student[])list.toArray(
                                new Student[ list.size() ] );
            File file = new File( "Student.ser" );
            saveStudents( file, students );
        }
        catch( IOException e ) {  // その他の入出力エラーが発生
            System.err.println("IO Error....");
            System.exit(-1);
        }
        catch( Exception e ) {   // 入出力以外のエラーが発生
            System.err.println("Error....");
            System.exit(-1);
        }
    }
}