[编辑]我无法使用类renameTo()
方法重命名我的文件File
。好的,我搜索并找到了一个解释相同的问题
我还阅读了 Java Doc,renameTo()
其中说:
此方法的行为的许多方面本质上是平台相关的:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是原子的,并且如果具有目标抽象路径名的文件可能不会成功已经存在。应始终检查返回值以确保重命名操作成功。
好的,我知道该renameTo()
方法取决于平台。
然后我创建了对象FileOutputStream
并调用了close()
方法,现在我尝试renameTo()
了方法并且我的文件被重命名了,
问题:
- 我无法理解为什么在创建
FileOutputStream
我的renameTo()
方法的对象后起作用的原因?
环境: Windows XP,用户:管理员
代码:
File f = null;
File f1 = null;
boolean isFileRenamed = false;
try {
// create new File objects
f = new File("C:\\originalFile.txt");
f1 = new File("C:\\renamedFile.txt");
// I need to write following code to rename the file
// I tried without FileOutputStram object but then renameTo() did not work
FileOutputStream fos = new FileOutputStream(f);
fos.close();
isFileRenamed = f.renameTo(f1);
System.out.print("File renamed? " + isFileRenamed);
} catch (Exception e) {
e.printStackTrace();
}
寻找答案为什么 renameTo() 方法在创建对象后起作用FileOutputStram
。我的应用程序也使用 Java1.6,所以我的Files
类选项已关闭。我renameTo()
只需要使用方法