加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Java中的4种文件复制方法

(2014-02-12 16:04:40)
标签:

it

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

1. Copy File Using FileStreams

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

http://s10/mw690/0029kwKfgy6GwWgQXsR09&690

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

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

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

http://s2/mw690/0029kwKfgy6GwWivoEF21&690


3. Copy File using Apache Commons IO

ApacheCommons IOFileUtils类中提供了一个copyFile(File SrcFileFile 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 }

测试

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

http://s4/mw690/0029kwKfgy6GwX9C8WD53&690

http://s7/mw690/0029kwKfgy6GwXaJSTA26&690

http://s7/mw690/0029kwKfgy6GwXb1jmef6&690

正如你可以看到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


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有