首页 课程 师资 教程 报名

Java复制文件都有哪几种方式

  • 2019-08-29 09:57:06
  • 2077次 动力节点

  


尽管Java提供了一个可以处理文件的IO操作类。 但是没有一个复制文件的方法。 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候。 然而有几种方法可以进行Java文件复制操作,下面动力节点java学院小编为大家分享Java复制文件都有哪几种方式呢?



1、使用Commons IO复制 


Apache Commons IO提供拷贝文件方法在其FileUtils类,可用于复制一个文件到另一个地方。它非常方便使用Apache Commons FileUtils类时,您已经使用您的项目。基本上,这个类使用Java NIO FileChannel内部。 这是第三种方法的代码: 


private static void copyFileUsingApacheCommonsIO(File source, File dest) 

        throws IOException { 

    FileUtils.copyFile(source, dest); 



2、使用FileStreams复制


这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。 这是第一个方法的代码:


private static void copyFileUsingFileStreams(File source, File dest) 

        throws IOException {     

    InputStream input = null;     

    OutputStream output = null;     

    try { 

           input = new FileInputStream(source); 

           output = new FileOutputStream(dest);         

           byte[] buf = new byte[1024];         

           int bytesRead;         

           while ((bytesRead = input.read(buf)) > 0) { 

               output.write(buf, 0, bytesRead); 

           } 

    } finally { 

        input.close(); 

        output.close(); 

    } 


正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。 



3、使用Java7的Files类复制 


如果你有一些经验在Java 7中你可能会知道,可以使用复制方法的Files类文件,从一个文件复制到另一个文件。 这是第四个方法的代码: 


private static void copyFileUsingJava7Files(File source, File dest) 

        throws IOException {     

        Files.copy(source.toPath(), dest.toPath()); 

}



4、使用FileChannel复制 


Java NIO包括transferFrom方法,根据文档应该比文件流复制的速度更快。 这是第二种方法的代码: 


private static void copyFileUsingFileChannels(File source, File dest) throws IOException {     

        FileChannel inputChannel = null;     

        FileChannel outputChannel = null;     

    try { 

        inputChannel = new FileInputStream(source).getChannel(); 

        outputChannel = new FileOutputStream(dest).getChannel(); 

        outputChannel.transferFrom(inputChannel, 0, inputChannel.size()); 

    } finally { 

        inputChannel.close(); 

        outputChannel.close(); 

    } 


以上就是动力节点java学院小编分享的“Java复制文件都有哪几种方式”的内容,希望对大家有帮助,更多精彩内容请继续关注动力节点java学院官网,每天会有精彩内容分享与你。



相关免费视频教程推荐


java文本文件复制视频教程下载地址:http://www.bjpowernode.com/xiazai/2481.html



选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交