Java中的4种文件复制方法

标签:
it |
当你的程序要处理很多文件相关的活动时,复制操作是重要的。有几种你可以在Java中执行文件复制操作的方法,我们将在这个例子中讨论四种最流行的。
1. Copy File Using FileStreams
这是最经典的方式将一个文件中的内容复制到另一个。您只需使用FileInputStream从文件A中读取字节数,并使用FileOutputStream将字节数写入到B文件。
http://s10/mw690/0029kwKfgy6GwWgQXsR09&690
正如你可以看到我们对大块数据执行读取和写入操作,所以相比下面的方法此方法效率会较低。
2. Copy File
using
java.nio.channels.FileChannel
Java的NIO包括transferFrom方法,文章中涉及到比FileStreams有更快的复制操作。
http://s2/mw690/0029kwKfgy6GwWivoEF21&690
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 copyFileUsingApacheCommo |
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