Java:在目录之间复制文件

时间:2011-10-07 18:27:22

标签: java file directory

使用java如何将文件从一个目录移动到另一个目录?我应该只使用streamReader将字节复制到目标目录,然后删除原始文件吗?

8 个答案:

答案 0 :(得分:2)

尝试File.renameTo操作。尽管它的名字,它也可能用于移动文件。但是,请注意,正如文档所述,其行为将取决于您运行的平台。

示例:

File oldFile = ...;
File newDirectory = ...;
String newName = ...;
File newFile = new File(newDirectory, newName);

oldName.renameTo(newFile);

答案 1 :(得分:2)

这听起来不对。如果您确实移动文件(而不是复制),那么您应该使用某种更便宜的重命名方法。 (File.renameTo())似乎是推荐的方法)。

[编辑]大多数(甚至是所有)操作系统中的移动操作比完整复制和删除便宜得多。它相当于在一个目录中删除文件的条目并将其添加到不同的目录(或在同一目录中的不同名称下)。此操作无需触摸文件中的实际数据。

答案 2 :(得分:1)

答案 3 :(得分:0)

我建议您使用FileUtils中的org.apache.common类。文档here

答案 4 :(得分:0)

您可以使用类似apache commons IO utilities的东西,而不是自己动手。

您只需拨打FileUtils.copyFile

即可

详情请见此处 http://commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html

答案 5 :(得分:0)

尝试copyFile API中FileUtils类的Apache commons-IO方法。

它已经过测试了!

答案 6 :(得分:0)

你可以做一个文件renameTo并给它作为参数的文件的新位置。

See Here

答案 7 :(得分:0)

首先尝试File.renameTo()做一个真正的举动。如果失败,请执行真正的复制/删除。除此之外:InputStreamOutputStream是执行复制的最基本方式。但如果您不想重新发明轮子,可以使用FileUtis完全按照我的描述进行操作。