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);
}
}
}