java.ioについて

何かいつも忘れるので…。
とりあえずメモ。

// ファイルからの読み込み
BufferedReader bufferedReader = new BufferedReader(
	new InputStreamReader(new FileInputStream(FILE_PATH + "/"
		+ READ_FILENAME)));

String line;
while ((line = bufferedReader.readLine()) != null) {

	System.out.println(line);
}

// ファイルへの書き込み(追加書き込みの場合はFileOutputStreamのコンストラクタの第二引数true)
BufferedWriter writer = new BufferedWriter(
	new OutputStreamWriter(new FileOutputStream(FILE_PATH + "/"
		+ WRITE_FILENAME), "UTF-8"));

String line;

....

writer.write(line.toString(), 0, line.length());
writer.newLine();

writer.flush();
writer.close();

FileInputStream、FileOutputStreamは生のバイト (イメージデータなど)
のストリームの読み込み、書き込みに使用する。
文字のストリームを読み込むときは、FileReader、FileWriterを使用する。(日本語の場合文字化け)
InputStreamReader はバイトストリームから文字ストリームへの橋渡しの役目を持ち、
バイトデータを読み込んで、指定された charset を使用して文字に変換する。(in byte→文字)
OutputStreamWriter は、文字ストリームからバイトストリームへの橋渡しの役目を持ち、
バイトストリームに書き込まれた文字は、指定された charset を使用してバイトに符号化される。(文字→byte out)
BufferedReader、BufferedWriterは文字、配列、行をバッファリングすることによって、
文字型入力ストリームからテキストを効率良く読み、文字型出力ストリームにテキストを書き込む。