¿Hay una necesidad de cerrar recurso si utilizamos tratar, con los recursos

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 bwa su cláusula try-con-recursos, por lo que se sienta junto con la definición de S3Object object(ver aquí para un ejemplo).

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=223174&siteId=1
Recomendado
Clasificación