【问题标题】:flush printwriter on application close在应用程序关闭时刷新 printwriter
【发布时间】:2017-02-19 20:40:21
【问题描述】:

所以我有一个打印机,它会偶尔写入文件(“偶尔”这里的意思是“在一定数量的指定事件之后定期”)。

现在如果这些事件发生得太少,当应用程序终止时,日志文件可能最终为空 (Ctrl + C)。

当然,我可以在每个 println 之后使用 flush,但这会破坏拥有非自动冲洗打印机的目的(如果我想通过File 作为构造函数参数)。

在 Java 中是否有 onApplicationKill-东西我可以在应用程序终止时刷新编写器一次?或者检测当前线程何时被杀死?

【问题讨论】:

标签: java multithreading interrupt interrupt-handling shutdown-hook


【解决方案1】:

您可以使用关闭挂钩:

Runtime.getRuntime().addShutdownHook(new Thread() {
  public void run() {
      ...
      writer.flush();
  }
});

如果你用Ctrl+C杀死它也应该可以工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 2013-06-03
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    相关资源
    最近更新 更多