gpt4 book ai didi

java - 使用 Java 在使用中修改文件

转载 作者:行者123 更新时间:2023-11-29 04:01:59 24 4
gpt4 key购买 nike

我有这个经常性的 Java JAR 程序任务,它尝试每 60 秒修改一个文件。

问题是,如果用户正在查看该文件,那么 Java 程序将无法修改该文件。我得到了典型的 IOException。

有人知道 Java 中是否有修改当前正在使用的文件的方法吗?或者有人知道解决此问题的最佳方法是什么?

我正在考虑使用 File canRead()、canWrite() 方法来检查文件是否在使用中。如果文件正在使用中,那么我正在考虑制作无法写入的数据的备份副本。然后在 60 秒后添加一些逻辑来检查备份文件是否为空。如果备份文件不为空,则将其内容添加到主文件。如果为空则只需将新数据添加到主文件。当然,我始终做的第一件事就是检查文件是否正在使用中。

感谢您的所有想法。

最佳答案

I was thinking of using the File canRead(), canWrite() methods to check if file is in use.

这不是个好主意 - 你会遇到竞争条件,例如当您的代码使用了这些检查方法,收到了 true 返回值,但是文件在您打开它进行写入之前被另一个应用程序(可能是用户)锁定了。

相反,尝试获取 FileLock在文件上,并在失败时使用“备份文件”。

关于java - 使用 Java 在使用中修改文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2851998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com