所以我有这段代码应该用旧文件交换旧文件(旧文件已经存在,新文件在同一个类的不同方法中生成,但我测试了它并生成了它正确,所以错误不在文件中),但由于某种原因,文件没有被重命名,错误的文件被删除。现在已经坚持了一个多小时,欢迎任何反馈。
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();
}
答案 0 :(得分:1)
您正在将fileNEW
重命名为fileOLD
,然后删除fileOLD
。这意味着您要删除路径,而不是JVM内存中的“虚拟文件”。
带有一些编辑的最终代码是:
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);
不要忘记您正在删除旧版本,并使用旧名称重命名新版本。这意味着您应该检查文件的内部,因为我还认为它正在删除错误的文件,而只是删除和重命名。
答案 1 :(得分:0)
看起来这些行不符合您的要求:
fileNEW.renameTo(fileOLD);
fileOLD.delete();