При чтении из текстового файла обычно создается FileReader
, а затем гнездится в BufferedReader
. Кого из двух читателей я должен закрыть, когда я закончил читать? Это имеет значение?
FileReader fr = null;
BufferedReader br = null;
try
{
fr = new FileReader(fileName);
br = new BufferedReader(fr);
// ...
}
finally
{
// should I close fr or br here?
}
Я немного параноик, когда речь заходит об исключении-безопасности. Что происходит, когда конструктор BufferedReader
создает исключение? Закрывает ли он вложенный читатель? Или он не может бросить?