вопросы удаления и переименования файлов - PullRequest
1 голос
/ 12 декабря 2011

Вот код, который я использую для удаления файла 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 ]

1 голос
/ 12 декабря 2011

Операция переименования зависит от платформы , она может или не может быть успешной, без гарантии.

Одна из причин, по которой это невозможно переименовать, может заключаться в том, что уже существует файл с именем, что означает, что delete не удалил файл, что, как вы говорите, не так.

До f2.renameTo(f1) вы можете добавить f1.exists() и посмотреть, что он возвращает true или false?

0 голосов
/ 12 декабря 2011

Вы переименовали дважды?

Не должно быть

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