Al leer desde un archivo de texto, normalmente se crea un FileReader
y luego se anida en un BufferedReader
. ¿Cuál de los dos lectores debería cerrar cuando termine de leer? ¿Importa?Cerrar el lector anidado
FileReader fr = null;
BufferedReader br = null;
try
{
fr = new FileReader(fileName);
br = new BufferedReader(fr);
// ...
}
finally
{
// should I close fr or br here?
}
Soy un poco paranoico cuando se trata de excepción de seguridad. ¿Qué sucede cuando el constructor BufferedReader
lanza una excepción? ¿Se cierra el lector anidado? ¿O se garantiza que no lanzará?
+1. Mucho más elegante que mi solución. –
Buena solución si está trabajando con múltiples envoltorios que lanzan excepciones (y similares). Por supuesto, puede verificar la documentación y el código del 'BufferedReader' para ver si hay alguna posibilidad de una excepción en el ctor. – fwielstra