-1

私は以下のコードを持っていて、を使用してログファイルを作成していますjava.util.logging.FileHandler.

このシナリオでは、finally ブロックのリソースを手動で閉じる必要があります。

try {
fh = new FileHandler("Test.log");
logger.addHandler(fh);
...
} catch (IOException e) {
e.printStackTrace();
} finally {
  if(fh!=null) { fh.close() };
}

このコードは機能します。Autocloseableさて、インターフェースを実装するかもしれないと思いました。そこで、リソースが自動的に閉じられるようにtry-with-resourcesforを使用することにしました (リソースを閉じる手動のジョブを削除するため)。FileHandler

私が試したコードは以下のとおりです。

try(fh = new FileHandler("Test.log")) {
logger.addHandler(fh);
...
} catch (IOException e) {
e.printStackTrace();
}

しかし、このコードは機能しません。

次のようなエラーが表示されます。

The resource type FileHandler does not implement java.lang.AutoCloseable'

  • 可能であれば、try-with-resources を使用してファイル ハンドラーを自動的に閉じる方法は?

  • 手動で閉じる必要がありますか? または、私が取ることができる他のアプローチがあります。

4

1 に答える 1