我有一组机器,每台机器都运行一个 Java 应用程序。
这些 Java 应用程序需要同时访问一个独特的 resource.txt
文件。
我需要在 Java 中自动将 temp.txt
文件重命名为 resource.txt
,即使 resource.txt
已经存在。
删除 resource.txt
并重命名 temp.txt
不起作用,因为它不是原子的(它创建了一个小的时间范围,其中 resource.txt
不存在)。
它应该是跨平台的……
原文由 Sébastien RoccaSerra 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于 Java 1.7+,使用
java.nio.file.Files.move(Path source, Path target, CopyOption... options)
和 CopyOptions“REPLACE_EXISTING”和“ATOMIC_MOVE”。有关详细信息,请参阅 API 文档。
例如: