第7講・その1(3) 解答例のプログラム

/* ClassTableWriter
  * 利用目的:テキストファイルから読み込んだ「時間割」をファイルに出力する
  */

import java.io.*;	// 入出力関連パッケージの利用を宣言する
import java.util.*;	// ユーティリティパッケージの利用を宣言する

public class ClassTableWriter {

	/*属性の定義*/
	Vector week;	//「時間割」を格納するVector


	/*メソッド1・テキストファイルから「時間割」を読み込む*/
	public void readData( String fileName ){
		try{
			/*テキストファイル入力の準備をする*/
			BufferedReader reader =
				new BufferedReader( new FileReader( fileName ));

			/*テキストファイルから「時間割」を読み込んでVectorに格納する*/			
			week = new Vector();	//「時間割」を格納するVectorをインスタンス化する
			int i = 1;		// 「時間割」の内容を順に読み込んでVectorに格納する
			while(i <= 5){
				Vector day = new Vector();	//「1日分の時間割」を格納するVectorを用意する
				int j = 1;			//「1日分の時間割」の内容を読み込んでVectorに格納する
				while( j <= 5){
					ClassTable ct = new ClassTable();	//ClassTableを実体化する
  	    				ct.inputData(reader);			//inputDataを起動して「授業の情報」を読み込む
					day.addElement(ct);			//Vectorに格納する
					j++;
				} 
				week.addElement(day);	//「1日分の時間割」を「時間割」の要素としてVectorに格納する
				i++;
			}
		}//エラーが出たらエラーメッセージを表示してプログラムを終了する
		catch(Exception e){System.out.println("エラーが発生したのでプログラムを終了します");}
	}


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

		}//エラーが出たらエラーメッセージを表示してプログラムを終了する
		catch(Exception e){System.out.println("エラーが発生したのでプログラムを終了します");}
	}


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

 			/*読み込むテキストファイル名をキーボードから読み込む*/
			BufferedReader reader =							//キーボード入力の準備をする
				new BufferedReader( new InputStreamReader( System.in ));
			System.out.print( "読み込むテキストファイルのファイル名>" );		//メッセージを表示してファイル名の入力を促す	
			String fName = reader.readLine();					//テキストファイル名を読み込む

			/*指定されたテキストファイルから「時間割」を読み込む*/
			ctw.readData( fName );

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

		}//エラーが出たらエラーメッセージを表示してプログラムを終了する
		catch(Exception e){System.out.println("エラーが発生したのでプログラムを終了します");}
	}
}

>>第7講・その1(3)に戻る