173 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 16:45:23 ] Stream の close() の仕方について質問です。 以下のようなみたいなコードがあったとき、 FileInputStream fis = new FileInputStream("hoge.txt"); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); 今まで以下のように書いていました。 br.close(); isr.close(); fis.close(); ところでピアソンの「プログラミング言語Java 第4版」p.450(20.4 InputStreamReader と OutputStreamReader という節) をみると、以下の記述があります。 >どちらの場合も、変換ストリームをクローズすると、関連付けされているバイトストリームもクローズされます。 >標準ストリームを変換するような場合には、クローズされるのは常に好ましくはないかもしれません。 >したがって、変換ストリームをいつクローズするかは慎重に検討してください。 これをよむと、以下のように isr.close() するだけで fis も close() されるという理解でよいですか? br.close(); isr.close(); 以下のように br.close() だけだと、isr と fis は close() されないですよね。 br.close();