ITPub博客

首页 > 数据库 > Oracle > Java中的4种文件复制方法

Java中的4种文件复制方法

Oracle 作者:koujun821 时间:2014-02-13 16:04:40 0 删除 编辑

当你的程序要处理很多文件相关的活动时,复制操作是重要的。有几种你可以在Java中执行文件复制操作的方法,我们将在这个例子中讨论四种最流行的。

1. Copy File Using FileStreams

这是最经典的方式将一个文件中的内容复制到另一个。您只需使用FileInputStream从文件A中读取字节数,并使用FileOutputStream将字节数写入到B文件。

Java中的4种文件复制方法

正如你可以看到我们对大块数据执行读取和写入操作,所以相比下面的方法此方法效率会较低。

2. Copy File using java.nio.channels.FileChannel

Java的NIO包括transferFrom方法,文章中涉及到比FileStreams有更快的复制操作。

Java中的4种文件复制方法


3. Copy File using Apache Commons IO

ApacheCommons IO在FileUtils类中提供了一个copyFile(File SrcFile,File destFile)方法,可用于将文件复制到另一个位置。当你在项目中使用Apache Commons FileUtils类时你会发现这是非常方便的。基本上,这个类在内部使用了Java NIO FileChannel。

1 private static void copyFileUsingApacheCommonsIO(File source, File dest)
2         throws IOException {
3     FileUtils.copyFile(source, dest);
4 }


4. Copy File using Java 7 Files class

如果你有Java 7的相关经验,你可能会使用Files类的copy方法。

1 private static void copyFileUsingJava7Files(File source, File dest)
2         throws IOException {
3     Files.copy(source.toPath(), dest.toPath());
4 }

测试

我们在一个程序中分别使用每一种方法复制一个大的文件,可以看其中哪一个方法是比较有效的。为了避免缓存带来的性能加速比,我们将使用四种不同的源文件和四个不同的目的地文件。

Java中的4种文件复制方法

Java中的4种文件复制方法

Java中的4种文件复制方法

正如你可以看到FileChannels是复制大文件的最好方法。如果你的工作中涉及到更大的文件,你会发现一个更大的速度差。

原文:http://examples.javacodegeeks.com/core-java/io/file/4-ways-to-copy-file-in-java/?utm_content=bufferfe69c&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer


<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20925900/viewspace-1116687/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论