想写一段代码测试File类对象的不可变性,求解谢谢!!!File t1 = new File("D:" + File.separatorChar + "final.java");
File t2 = new File("D:" + File.separatorChar + "finalaa.java");
System.out.println("是否重命名成功:" + t1.renameTo(t2));//为什么无法重命名成功?
File t2 = new File("D:" + File.separatorChar + "finalaa.java");
System.out.println("是否重命名成功:" + t1.renameTo(t2));//为什么无法重命名成功?
t1.createNewFile();
System.out.println("t1 exists? " + t1.exists()); File t2 = new File("D:" + File.separatorChar + "finalaa.java");
boolean yes = t1.renameTo(t2);
if (yes) {
System.out.println("succeed");
} else
System.out.println("failed");
}然后就能成功,已经测试过了,输出结果为t1 exists? true
succeed
程序运行之后final.java被重命名为finalaa.java了。相应的路径中只存在finalaa.java这个被重命名后的文件。
File t1 = new File("D:" + File.separator + "final.java");
try {
t1.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(t1.exists());
File t2 = new File("D:" + File.separatorChar + "finalaaa.java");
System.out.println(t1.getName());
System.out.println("是否重命名成功:" + t1.renameTo(t2));//ok
System.out.println("是否相等:" +t1.equals(t2)); //false
System.out.println(t1.getPath());//构建时的路径
System.out.println(t2.getPath());
System.out.println(t1.getName());//构建时的文件名
System.out.println(t2.getName());
请问,既然File对象是不可变的,并且改名之后也是不同的对象,为什么还有个重命名方法呢?重命名之前的文件去哪里了?