文件删除和重命名问题

时间:2011-12-12 07:19:28

标签: java file file-rename

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

2 个答案:

答案 0 :(得分:1)

重命名操作是platform dependent,它可能成功也可能不成功,无法保证。

这无法重命名的一个原因可能是因为已经有一个带有名称的文件,这意味着删除没有删除文件,你说的不是这种情况。

f2.renameTo(f1)之前,你可以添加f1.exists()并查看它返回的是真还是假?

答案 1 :(得分:0)

你重命名了两次吗?

不应该

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