2011-12-12 162 views
1

以下是iam用于删除文件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

我怀疑是因为你打印错误的值!你应该打印'delete'而不是'f1.delete()',对于'rename'也是一样的,注意这个操作有副作用! – amit

回答

1

重命名操作platform dependent,它可能会或可能不会成功,没有保证。

为什么不能重命名的一个原因可能是因为已经有一个带有名称的文件,这意味着删除并没有删除该文件,而您说的不是这种情况。

之前f2.renameTo(f1)你可以加f1.exists()并看看它返回true或false?

0

您是否重命名过两次?

Should'nt是

System.out.println("delete----"+delete+ "rename-----"+rename);