¿Para qué sirve try-with-resources?
Opciones
- Probar varios recursos en paralelo hasta que uno funcione
- Cerrar recursos automáticamente, incluso tras un error (Opción correcta)
- Reintentar una operación una y otra vez hasta que funcione
- Asignar más memoria al recurso cuando haga falta
Respuesta
Cerrar automáticamente los recursos (archivos, conexiones) al final del bloque, aunque ocurra una excepción
Por qué
Los recursos como archivos, conexiones a bases de datos y sockets deben cerrarse o se produce una fuga. La forma antigua necesitaba un bloque finally con otro try/catch.
Con try (Resource r = ...) { ... }, Java llama a r.close() automáticamente cuando termina el bloque, de forma normal o por una excepción. El recurso debe implementar AutoCloseable. Los recursos se cierran en orden inverso al de creación.
try (BufferedReader br = new BufferedReader(new FileReader("data.txt"))) {
System.out.println(br.readLine());
} // br.close() is called automaticallyRecuerda
Ábrelo en los paréntesis del try y Java lo cierra por ti.