无法用另一个文件替换一个文件

Can't replace one file with other

所以我有这段代码应该用新文件交换旧文件(旧文件已经存在,并且新文件以相同 class 的不同方法生成,但我对其进行了测试并正确生成,因此错误不在文件中),但由于某种原因,文件没有重命名并且错误的文件被删除。现在已经坚持了一个多小时,欢迎任何反馈。

 public static void replaceAndDelete() {

        String pathOLD = System.getProperty("user.home");
        pathOLD = pathOLD+"\cd.txt";
        File fileOLD = new File(pathOLD);
        String pathNEW = System.getProperty("user.home");
        pathNEW = pathNEW+"\temp.txt";
        File fileNEW = new File (pathNEW);
        fileNEW.renameTo(fileOLD);
        fileOLD.delete();



}

看起来这些行的顺序不符合您的要求:

fileNEW.renameTo(fileOLD);
fileOLD.delete();

您正在将 fileNEW 重命名为 fileOLD,然后删除 fileOLD。这意味着您正在删除 path,而不是 JVM 内存中的 "virtual file"。

经过一些编辑的最终代码是:

String pathOLD = "C:\test\old.txt";
String pathNEW = "C:\test\new.txt";
File fileOLD = new File(pathOLD);
File fileNEW = new File (pathNEW);
fileOLD.delete();
fileNEW.renameTo(fileOLD);

不要忘记您要删除旧的并用旧的名字 重命名新的。这意味着你应该检查文件的 inside,因为我还认为它删除了错误的文件,而它只是正确地删除和重命名。