无法用另一个文件替换一个文件
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,因为我还认为它删除了错误的文件,而它只是正确地删除和重命名。
所以我有这段代码应该用新文件交换旧文件(旧文件已经存在,并且新文件以相同 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,因为我还认为它删除了错误的文件,而它只是正确地删除和重命名。