当您不知道文件与哪个应用程序相关联时,如何从Java应用程序编辑文件。另外,因为我使用Java,所以我更喜欢独立于平台的解决方案。外部应用程序关闭后,我想在文件中写回更改。编辑文件是本地临时文件。真实文件保存在服务器,存档或任何其他文件中。
我现在可以使用班级Desktop打开文件进行编辑。但是如何检测文件是否已关闭。
答案 0 :(得分:1)
在这种情况下,外部应用程序未知并且未从您的Java应用程序调用,那么您可以创建恶魔线程。我假设你的应用程序知道文件的位置。这个恶魔线程可以在锁定释放时检查文件上的任何锁定以及文件的上次更新时间。如果上次更新的时间发生变化,则表示文件已更改。
另一种选择可能是使用来自apache的FileListener之类的第三方api,它也在内部做同样的事情。
答案 1 :(得分:0)
我不确定你的意思'在外部应用程序关闭后我想把文件中的更改写回来。'
如果您只想等待外部应用程序完成,您可以使用RunTime:
Process p = Runtime.getRuntime.exec("mycommand");
p.waitFor()