[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()); } 
相关文章
相关标签/搜索