我想将文件保存到用户从一个目录中选择的另一个目录。我知道可以使用JFileChooser
来选择文件。但是,有没有什么方法可以将文件从一个位置移动到另一个位置,而不是使用任何输出流?
答案 0 :(得分:2)
仅当且仅当它们位于相同本地磁盘文件系统上时,您才可以使用File#renameTo()
。
File sourceFile = createItSomehow();
File targetFile = chooser.getSelectedFile();
boolean renamed = sourceFile.renameTo(targetFile);
if (!renamed) {
// Well, perhaps they are not on the same disk?
}
对于所有其他情况,只需流式传输即可让您感觉更好。另请参见链接的javadoc:
此方法行为的许多方面本质上都依赖于平台:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是原子的,并且如果文件具有目标抽象路径名已存在。应始终检查返回值以确保重命名操作成功。