みなさんご指摘ありがとうございます。ようやく正常に動作しました。いろいろなミスが重なっていたようです。

write()のclose()、同じファイルを同時にオープンしていたこと、bw.write(int) が原因だったようです・・・。
read()の方はclose()しなかった場合は、何か悪いことになりますか?


public void write(int c) throws IOException
単一の文字を書き込みます。
オーバーライド:クラス Writer 内の write
パラメータ:c - 書き込む文字を指定する int

と書いてあったのでint型もOKと勘違いしたのですが、この「int c」というのはどういう意味なのですか?