1. ホーム

[解決済み】FileReaderとBufferedReaderの両方をclose()する必要があるのでしょうか?

2022-04-12 10:29:35

質問

FileReaderをBufferedReaderで包んで、ローカルファイルを読んでいます。

BufferedReader reader = new BufferedReader(new FileReader(fileName));
// read the file
// (error handling snipped)
reader.close();

は必要ですか? close() その FileReader それとも、ラッパーがそれを処理するのでしょうか? このようなことをするコードを見たことがあります。

FileReader fReader = new FileReader(fileName);
BufferedReader bReader = new BufferedReader(fReader);
// read the file
// (error handling snipped)
bReader.close();
fReader.close();

このメソッドはサーブレットから呼び出されるので、ハンドルが開いたままにならないようにしたいですね。

どのように解決するのですか?

いいえ。

BufferedReader.close()

ストリームを閉じる のjavadocによると バッファードリーダー インプットストリームリーダー

と同様に

FileReader.close()

が行います。