我々はトライしてリソースを使用する場合に近いリソースにする必要があります

ジェイ:

私は、メソッドの最後にリソースを閉じるか、必要でないようにする必要がある疑問に、私のコードでのtry-とリソースブロックを使用していますか?

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敬礼モニカC.:

あなたがする必要はありません近いあなたはtry節で定義されたリソース。しかし、あなたの例を与え、あなたも、これを持っている身体試みの:

BufferedWriter bw = new BufferedWriter(new FileWriter(new File("output.txt"))))

そして、あなたのコードがされていないそのリソースを閉じます。そして、それは間違っている(とハンドルが開いてファイルシステムを維持することは、最も可能性の高い本物のリソースリークです)。

言い換えれば、あなたはおそらく、追加するbwことがの定義に沿って座っているので、あなたのtry-と、リソース節にS3Object object(参照ここでは例えば)。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=223171&siteId=1
おすすめ