Java中的File.rename()-它是一个原子操作吗



可能重复:
如何在Java中原子地重命名文件,即使dest文件已经存在?

我正在处理一个可能在工作中被扼杀的过程。我想重命名一个文件。Java的重命名操作是原子操作吗?

我对Linux、HP-UX、Solaris和AIX的情况感兴趣。

重命名操作可能是原子操作,也可能不是原子操作,它可能成功,也可能不成功如果目标名称下已存在文件或目录。在Unix上有两个独立的操作必须执行。第一个必须测试目标名称下是否存在文件。然后,如果不存在这样的文件,可以继续将源文件重命名为目标名称。在这两个操作之间,可能会在目标名称下创建一个新文件,因为rename()系统调用是原子的,会破坏目标,所以这个新文件将被删除。

否。

至少是因为VM可能在离开代码之后(在您输入File.rename()之后),在File.reame()代码开始运行之前被杀死

相关内容

  • 没有找到相关文章

最新更新