zoukankan      html  css  js  c++  java
  • Java复制文件的4种方式

    尽管Java提供了一个可以处理文件的IO操作类。 但是没有一个复制文件的方法。 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候。 然而有几种方法可以进行Java文件复制操作,下面列举出4中最受欢迎的方式。 

    1. 使用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的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。 

    2. 使用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(); 
        } 
    } 

    3. 使用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); 
    } 

    4. 使用Java7的Files类复制 

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

    private static void copyFileUsingJava7Files(File source, File dest) 
            throws IOException {     
            Files.copy(source.toPath(), dest.toPath()); 
    }
  • 相关阅读:
    深入浅出JavaScript (一)初识
    “0”基础让你学会 GridView (一)
    VS 中PageLayout 属性设置
    ASP.NET Forms身份认证
    教务系统数据库设计 (一)
    深入浅出Javascript(三)创建自定义对象以及属性、方法
    .NET 中的Cache
    深入浅出JavaScript (二) 代码放置位置与执行顺序
    触发器特殊的存储过程
    ASP.NET与JavaScript轻松实现输入信息验证
  • 原文地址:https://www.cnblogs.com/yysbolg/p/10918003.html
Copyright © 2011-2022 走看看