Jay:
Estoy usando bloque try-con-recursos en mi código, se pregunta ¿existe una necesidad de cerrar el recurso al final del método o no es necesario?
try (S3Object object = s3.getObject(new GetObjectRequest(bucketName, key));
BufferedReader br = new BufferedReader(new InputStreamReader(object.getObjectContent()));
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("output.txt")))){
String line;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
}
GhostCat saludos Monica C.:
Usted no tiene que cerrar los recursos que ha definido en la cláusula try. Sin embargo, dada su ejemplo, también tiene esto en el cuerpo de la prueba:
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("output.txt"))))
y su código es no cerrando ese recurso. Y lo que es malo (y de mantenimiento de las manijas del sistema de archivos se abren más probable es una pérdida de recursos real).
En otras palabras: es probable que desee añadir bw
a su cláusula try-con-recursos, por lo que se sienta junto con la definición de S3Object object
(ver aquí para un ejemplo).