所以我有一个偶尔会写入文件的打印作者(“偶尔”在这里意味着“在一定数量的指定事件后定期”)。
现在,如果这些事件碰巧太少,那么当应用程序终止时,日志文件可能会变空(Ctrl + C
)。
我可以在flush
之后println
,但是这会打败非自动刷新打印机的目的(如果我是唯一可以创建的打印机)想要传递File
作为构造函数参数。)
Java中是否存在onApplicationKill
- 在应用程序终止时我可以检测一次刷新写入程序?或者当前线程被杀死时要检测的东西?
答案 0 :(得分:3)
您可以使用关机挂钩:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
...
writer.flush();
}
});
如果你用Ctrl+C