テキストファイルから読み込む場合、通常はFileReader
が作成され、次にBufferedReader
にネストされます。私は読書を終えたときに2人の読者のうちどちらを閉じなければならないのですか?それは問題ですか?ネストされたリーダーを閉じる
FileReader fr = null;
BufferedReader br = null;
try
{
fr = new FileReader(fileName);
br = new BufferedReader(fr);
// ...
}
finally
{
// should I close fr or br here?
}
例外的安全性については、私は少しパラノイアです。 BufferedReader
コンストラクタが例外をスローするとどうなりますか?入れ子にされた読者を閉じますか?それとも、投げないことが保証されていますか?
+1。私のソリューションよりもはるかにエレガントです。 –
例外をスローする可能性のある複数のラッパー(およびそれに類するもの)を扱っている場合は、良い解決策です。もちろん、 'BufferedReader'のドキュメントとコードをチェックして、実際に例外が発生する可能性があるかどうかを確認することができます。 – fwielstra