我有两个java.io.File对象,文件1和文件2。我想将文件1中的内容复制到文件2。有没有办法做到这一点没有我不必创建一个读取文件1的方法和写入到file2的Java IO到一个文件复制到另一个
回答
不,没有内置的方法来做到这一点。最接近你想要完成的任务是从FileOutputStream
的transferFrom
方法,像这样:
FileChannel src = new FileInputStream(file1).getChannel();
FileChannel dest = new FileOutputStream(file2).getChannel();
dest.transferFrom(src, 0, src.size());
而且不要忘了处理异常和关闭一切在finally
块。
哇。你教过我。 – 2010-03-26 00:56:21
此答案的更完整(正确)版本可在此处获得:http://stackoverflow.com/questions/106770/standard-concise-way-to-copy-a-file-in-java/115086#115086。由于http://stackoverflow.com/users/92937/twentymiles上学我们大家。 – vkraemer 2010-03-26 03:20:19
完整而高效的答案:https://gist.github.com/mrenouf/889747 – 2013-05-08 13:58:38
号每次长时间的Java程序员都有自己的效用带,包括这种方法的标准方式。这是我的。
public static void copyFileToFile(final File src, final File dest) throws IOException
{
copyInputStreamToFile(new FileInputStream(src), dest);
dest.setLastModified(src.lastModified());
}
public static void copyInputStreamToFile(final InputStream in, final File dest)
throws IOException
{
copyInputStreamToOutputStream(in, new FileOutputStream(dest));
}
public static void copyInputStreamToOutputStream(final InputStream in,
final OutputStream out) throws IOException
{
try
{
try
{
final byte[] buffer = new byte[1024];
int n;
while ((n = in.read(buffer)) != -1)
out.write(buffer, 0, n);
}
finally
{
out.close();
}
}
finally
{
in.close();
}
}
没有copyFileToInputStream? – 2010-03-26 00:35:21
这是一个*摘录*。 :) – 2010-03-26 00:56:01
如果你想偷懒,侥幸从Apache的IOCommons
写最少的代码使用 FileUtils.copyFile(src, dest)
这是要走的路! – 2010-03-26 11:41:04
我是最小代码的粉丝。不知道为什么使用实用程序包是“懒惰”的。我喜欢StringUtils。 – 2014-02-18 20:32:36
或者使用Files.copy(file1,file2)从谷歌的番石榴库。
由于Java 7您可以使用Java标准库中的Files.copy()
。
您可以创建一个包装方法:
public static void copy(String sourcePath, String destinationPath) throws IOException {
Files.copy(Paths.get(sourcePath), new FileOutputStream(destinationPath));
}
,可以通过以下方式使用:
copy("source.txt", "dest.txt");
在的Java 7可以使用Files.copy()
而且非常重要的是:待办事项不要忘记创建新文件后关闭的OutputStream。
OutputStream os = new FileOutputStream(targetFile);
Files.copy(Paths.get(sourceFile), os);
os.close();
- 1. Java从一个文件复制到另一个文件,一行一行,间隔
- 2. 从一个文件到另一个文件的高效复制
- 3. 复制文件夹到另一个
- 4. 将png文件从一个文件夹复制到另一个
- 5. 将x文件从一个文件夹复制到另一个
- 6. 将文件从一个目录复制到另一个目录
- 7. 使用java将文件从一个solaris 9复制到另一个使用java
- 8. 从一个目录的文件复制到另一个目录
- 9. 从一个Excel文件复制到另一个宏的宏
- 10. SQLite的iOS上 - SQL从一个文件复制到另一个
- 11. 将一个NSString复制到另一个
- 12. 拷贝一个文件到另一个复制
- 13. 如何将文件从一个EBS复制到另一个?
- 14. 将3gp moov原子从一个文件复制到另一个
- 15. 将文件从一个目录复制到另一个目录
- 16. 复制文件从一个目录到另一个詹金斯
- 17. 将文件从一个目录复制到另一个目录
- 18. 将图像从一个文件夹复制到另一个
- 19. 将文件从一个目录复制到另一个目录
- 20. 如何将一个文件复制到另一个vb.net 2008
- 21. 从一个目录复制文件到另一个python
- 22. 将文件从一个目录复制到另一个目录
- 23. Python:将CSV文件从一个RPi复制到另一个
- 24. 将文件从一个位置复制到另一个位置
- 25. 将文件从一个位置复制到另一个位置
- 26. 复制一个文件的内容复制到另一个在python
- 27. 复制或移动一个文件从一个FTP服务器到另一个
- 28. 从一个文本框复制一个输入到另一个
- 29. 从python中将文件从一个文件复制到另一个文件
- 30. 使用vbscript将文件从一个文件夹复制到另一个文件
见http://stackoverflow.com/questions/106770/standard-concise-way-to-copy-a-file-in-java – TwentyMiles 2010-03-26 00:19:59