以下是用于删除文件f1并将文件f2重命名为f1的代码。但是它返回false。
String strLine;
File f1 =new File("C:\\Equinox\\RootSipResource\\root\\root.properties");
File f2 =new File("C:\\Equinox\\RootSipResource\\root\\root1.properties");
FileInputStream fin = new FileInputStream(f1);
BufferedReader br = new BufferedReader(new InputStreamReader(fin,"UTF-8"));
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(f2), "UTF-8");
while ((strLine = br.readLine()) != null) {
strLine = strLine.replace("root.label.43.2=PBS Kids"," root.label.43.2=PBS Kids NEW");
out.write(strLine);
out.write("\n");
}
out.flush();
out.close();
br.close();
//fin.close();
boolean delete= f1.delete();
boolean rename=f2.renameTo(f1);
System.out.println("delete----"+delete+ "rename-----"+rename);
答案 0 :(得分:1)
重命名操作是platform dependent,它可能成功也可能不成功,无法保证。
这无法重命名的一个原因可能是因为已经有一个带有名称的文件,这意味着删除没有删除文件,你说的不是这种情况。
在f2.renameTo(f1)
之前,你可以添加f1.exists()
并查看它返回的是真还是假?
答案 1 :(得分:0)
你重命名了两次吗?
不应该
System.out.println("delete----"+delete+ "rename-----"+rename);