需要对文件夹下的文件重命名,发现返回false了,先用main方法测试,发现没问题,如下
public static void main(String[] args) throws IOException {
File file1 = new File("D:\\aabb.xml");
File file2 = new File("D:\\ccdd.xml");
boolean b = file1.renameTo(file2);
System.out.println(b); // true
}
最后发现,是一个文件是用文件流写的,流没用close,导致文件重命名失败了,模拟如下
public static void main(String[] args) throws IOException {
File file1 = new File("D:\\aabb.xml");
FileWriter out = new FileWriter(file1);
File file2 = new File("D:\\ccdd.xml");
boolean b = file1.renameTo(file2);
System.out.println(b);// false
}
最终也是很好解决,找个合适的地方close就好了
public static void main(String[] args) throws IOException {
File file1 = new File("D:\\aabb.xml");
FileWriter out = new FileWriter(file1);
out.close();
File file2 = new File("D:\\ccdd.xml");
boolean b = file1.renameTo(file2);
System.out.println(b);//true
}
博客讲述了对文件夹下文件重命名返回false的问题。先用main方法测试没问题,最终发现是一个用文件流写的文件,流未关闭导致重命名失败,解决办法是在合适的地方关闭流。
680

被折叠的 条评论
为什么被折叠?



