При чтении из текстового файла обычно создается 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
генерирует исключение? Закрывает ли вложенный ридер? Или гарантированно не выкинет?