第6講・その1(2) 解答例のプログラム
/*  ClassTableWriter
  *  利用目的:キーボードから読み込んだ「1日分の時間割」をファイルに出力する
  */
  
import java.io.*;	// 入出力関連パッケージの利用を宣言する
import java.util.*;	// ユーティリティパッケージの利用を宣言する

public class ClassTableWriter {

	/*属性の定義*/
	Vector day;	//「1日分の時間割」を格納するVector
	
	
	/*メソッド1・キーボードから「1日分の時間割」を読み込む*/
	public void readData(){
		try{
			/*「1日分の時間割」を格納するVectorをインスタンス化する*/
			day = new Vector();
			
			/*キーボード入力の準備をする*/
			BufferedReader reader =
  	    			new BufferedReader( new InputStreamReader( System.in ));
  	    		
  	    		/*「1日分の時間割」を読み込んでVectorに格納する*/
  	    		int i = 1;
  	    		while(i <= 5){
  	    			ClassTable ct = new ClassTable();  //ClassTableを実体化する
  	    			ct.inputData(reader); //inputDataを起動して「授業の情報」を読み込む
  	    			day.addElement(ct); //Vectorに格納する
  	    			i++;
  	    		} 	
		}//エラーが出たらエラーメッセージを表示してプログラムを終了する
		catch(Exception e){System.out.println("エラーが発生したのでプログラムを終了します");}
	}


	/*メソッド2・「1日分の時間割」をファイルとして出力する*/
	public void fileOut(){
		try{
			/*ファイル出力の準備をする*/
			FileOutputStream fos =	//ファイルを出力する準備をする
  	   			new FileOutputStream( "Day.data" );	
			ObjectOutputStream oos =	//インスタンスを出力する準備をする
				new ObjectOutputStream( fos );

			/* 「1日分の時間割」を出力する */
			oos.writeObject(day);
		}//エラーが出たらエラーメッセージを表示してプログラムを終了する
		catch(Exception e){System.out.println("エラーが発生したのでプログラムを終了します");}
	}
    

	/*メイン・メソッド・キーボードから入力された「1日分の時間割」をファイルとして出力する*/
	public static void main ( String args[] ){
		/*ClassTableWriterをインスタンス化する*/
		ClassTableWriter ctw = new ClassTableWriter();

		/*キーボードから「1日分の時間割」を読み込む*/
		ctw.readData();

		/*「1日分の時間割」をファイルとして出力する*/
		ctw.fileOut();
	}
}

>>第6講・その1(2)に戻る