1

これは、ファイルf1を削除し、ファイルf2の名前をf1に変更するために使用するコードiamです。ただし、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

名前の変更操作はプラットフォームに依存します。成功する場合と成功しない場合があります。保証はありません。

これが名前を変更できない理由の1つは、その名前のファイルがすでに存在するためである可能性があります。つまり、deleteはファイルを削除しませんでしたが、そうではないと言います。

前に、それがtrueまたはfalseを返すものf2.renameTo(f1)を追加して確認できますか?f1.exists()

于 2011-12-12T07:54:55.253 に答える
0

名前を2回変更しましたか?

すべきではない

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