在应用程序关闭时刷新打印机
flush printwriter on application close
所以我有一个偶尔会写入文件的打印器("occasionally" 这里的意思是 "periodically after a certain number of specified events")。
现在,如果这些事件碰巧太少,当应用程序终止时,日志文件可能最终为空 (Ctrl + C
)。
当然,我可以在每个 println
之后 flush
,但这会破坏拥有非自动冲洗打印器的目的(这是唯一可以创建的类型)如果我想将 File
作为构造函数参数传递)。
在 Java 中是否有 onApplicationKill
的东西,我可以在应用程序终止时使用工具刷新编写器一次?或者检测当前线程何时被杀死?
您可以使用关闭钩子:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
...
writer.flush();
}
});
用Ctrl+C
杀掉它应该也能用
所以我有一个偶尔会写入文件的打印器("occasionally" 这里的意思是 "periodically after a certain number of specified events")。
现在,如果这些事件碰巧太少,当应用程序终止时,日志文件可能最终为空 (Ctrl + C
)。
当然,我可以在每个 println
之后 flush
,但这会破坏拥有非自动冲洗打印器的目的(这是唯一可以创建的类型)如果我想将 File
作为构造函数参数传递)。
在 Java 中是否有 onApplicationKill
的东西,我可以在应用程序终止时使用工具刷新编写器一次?或者检测当前线程何时被杀死?
您可以使用关闭钩子:
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
...
writer.flush();
}
});
用Ctrl+C