Java File renameTo 方法 Windows Linux 下的差异:
window :
1 在关闭源文件之前,进行重命名操作,返回 false,重命名失败;
2 目标文件存在时,返回false,重命名失败。
linux:
1 在关闭源文件之前,进行重命名操作,返回 true,重命名成功;
2 目标文件存在时,返回true,覆盖已存在的同名目标文件,重命名成功。
测试demo:(注:使用jdk1.6)
public static void testRename() throws Exception{
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String str = sdf.format(new Date());
String outFileTemp = "testRename" + str + ".txt";
Writer writer = null;
try{
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFileTemp, false), "GBK"));
writer.write("789");
writer.flush();
/*
* 1.关闭流前重命名
*/
File tempFile = new File(outFileTemp);
System.out.println(tempFile.renameTo(new File("testRename.txt")));
}catch(Exception e){
System.out.println("Exception is:" + e.getMessage());
}finally{
try{
if(writer != null){
writer.close();
}
} catch (IOException e) {
System.out.println("关闭流对象失败:" + e.getMessage());
}
}
/*
* 2.关闭流后再重命名
*/
// File tempFile = new File(outFileTemp);
// System.out.println(tempFile.renameTo(new File("testRename.txt")));
}