Okapi Project   Web technological site for the beginner... Top

新聞の記事を出力しよう!

では、本題のファイルを読み込む部分を見ていきましょう。
コンソールから値を受け取るプログラムと非常に似ていると思います。一部が違うだけで、同じような処理が書かれています。このように、コンストラクタに次から次へインスタンスを渡し、最終的に作成されたオブジェクトは、様々な材料(いろいろなクラスのインスタンス)で作られています。材料を変えることによって、コンソールから値を受け取ったり、ファイルを読み込んだりすることが出来ます。このような API は、非常に良い設計であると言われています。良い設計のパターンを記載してあるデザインパターンにもしばしば登場します。特に、もっとも有名なデザインパターンである「GoF のデザインパターン」では、Decorator パターンとして登場します。

ファイルを読み込むインスタンスを作成し、readLine メソッドでファイルの1行分を読み込みます。ファイル内のすべてのデータを読み込むと、null が返却され while ループを終了します。ループ中は、ファイルの1行分の文字列を StringBuffer オブジェクトに格納していきます。そして、最後に連結された文字列を String 型に変換し返却します。

ファイル読込メソッド

public String getFile(String fileName) 
                        throws IOException{
								
	StringBuffer sb = new StringBuffer();
	
	BufferedReader br 
		 = new BufferedReader(
			new InputStreamReader(
			 new FileInputStream(fileName),"MS932"));

	String inString;
	while ((inString = br.readLine()) != null){
		sb.append(inString);
		sb.append("\n");
	}
	br.close();
	
	return sb.toString();
}