1

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

2 回答 2

1

重命名操作取决于平台,它可能成功也可能不成功,不能保证。

无法重命名的一个原因可能是因为已经有一个具有该名称的文件,这意味着 delete 没有删除该文件,您说的情况并非如此。

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

于 2011-12-12T07:54:55.253 回答
0

你改名两次了吗?

不应该

System.out.println("delete----"+delete+ "rename-----"+rename);
于 2011-12-12T07:23:53.730 回答