如何在 Java 中自动重命名文件,即使目标文件已经存在?

新手上路,请多包涵

我有一组机器,每台机器都运行一个 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 许可协议

阅读 567
1 个回答

对于 Java 1.7+,使用 java.nio.file.Files.move(Path source, Path target, CopyOption... options) 和 CopyOptions“REPLACE_EXISTING”和“ATOMIC_MOVE”。

有关详细信息,请参阅 API 文档。

例如:

 Files.move(src, dst, StandardCopyOption.ATOMIC_MOVE);

原文由 Eirik W 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题