File.renameTo故障转移NFS挂载,所以我使用的是commons.io FileUtils类的moveFile方法。移动文件时偶尔会抛出IOException,但该文件会在NFS挂载中正确显示。我假设在FileUtils检查以确保文件被移动和NFS说这是一个有效文件之间存在竞争条件。
确保平滑文件移植到Java中的NFS挂载的最佳方法是什么?
File f = new File("test.log");
FileUtils.moveFile(f, new File(newDir, f.getName));
答案 0 :(得分:1)
import static java.nio.file.StandardCopyOption.*;
import java.io.file.Files;
Files.copy(source, target, REPLACE_EXISTING);
在Unix中,您无法重命名或在文件系统之间移动,因此首先您必须复制,然后如果它是移动/重命名,您将删除源。
File f = ...;
f.delete();