StudentLoader.java



import java.io.*;
import java.util.*;

/** 複数のStudentオブジェクトの情報を
    ファイルから読み込む StudentLoaderクラス */

public class StudentLoader {

   /** 指定されたファイルの内容を読み込むメソッド */

     public static Vector loadStudents( File file )
                                        throws Exception {

          Vector vector = new Vector();
          try {
               if( !file.exists() )
                   throw new Exception("ファイルが存在しません");
               if( !file.isFile() )
                   throw new Exception("通常ファイルではありません");
               if( !file.canRead() )
                   throw new Exception("読み込み許可がありません");

               FileInputStream fis = new FileInputStream( file );
               ObjectInputStream ois = new ObjectInputStream( fis );

               Student student;
               while( fis.available() != 0 ) {

                      student = (Student)ois.readObject();
                      vector.addElement( student );
               }
               ois.close();
               fis.close();
           }
           catch( Exception e ) {  // エラーが発生

               throw new Exception("読み込みエラーが発生しました");
           }
           return vector;
     }
 
   /** 単独に実行された時に呼び出されるメソッド */
 
     public static void main( String argv[] ) {
 
          File file;
          String fileName;
 
          if( argv.length >= 1 )  fileName = argv[0];
          else                    fileName = "student.data";

          System.out.println( fileName + "からサンプルデータを読み込みます" );
          try {

               file = new File( fileName );
               Vector vector = loadStudents( file );
               for( int i=0; i<vector.size(); i++ ) {

                    Student student = (Student)vector.elementAt(i);
                    System.out.println(
                            "学年:" + student.getGrade()
                          + ", 学科:" + student.getDepartment()
                          + ", 番号:" + student.getNumber()
                          + ", 氏名:" + student.getName() ); 
               }
           }
           catch( Exception e ){
               System.err.println( e.getMessage() );
               System.exit(-1);
           }
      }
}