使用Java语言如何达成快速文件复制?
发布时间:2021-11-20 12:53:10 所属栏目:PHP教程 来源:互联网
导读:今天review代码又看到某个大神使用古老的方法来实现文件的复制发火,今天归结一下使用Java语言如何实现快速文件复制: 代码1: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import
今天review代码又看到某个“大神”使用古老的方法来实现文件的复制发火,今天归结一下使用Java语言如何实现快速文件复制: 代码1: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.channels.FileChannel; public class Test { public static void main(String[] args){ long start = System.currentTimeMillis(); FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; FileChannel inFileChannel = null; FileChannel outFileChannel = null; try { fileInputStream = new FileInputStream(new File("C:from不是闹着玩的.flv")); fileOutputStream = new FileOutputStream(new File("C:to不是闹着玩的.flv")); inFileChannel = fileInputStream.getChannel(); outFileChannel = fileOutputStream.getChannel(); inFileChannel.transferTo(0, inFileChannel.size(), outFileChannel);//连接两个通道,从in通道读取数据写入out通道。 } catch (IOException e) { e.printStackTrace(); } finally { try { if(fileInputStream != null){ fileInputStream.close(); } if(inFileChannel != null){ inFileChannel.close(); } if(fileOutputStream != null){ fileOutputStream.close(); } if(outFileChannel != null){ outFileChannel.close(); } } catch (IOException e) { e.printStackTrace(); } } long end = System.currentTimeMillis(); System.out.println("视频文件从“from”文件夹复制到“to”文件需要" + (end - start) + "毫秒。"); } } 代码运行结果为: 代码2: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Test { public static void main(String[] args){ long start = System.currentTimeMillis(); FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; try{ fileInputStream = new FileInputStream(new File("C:from不是闹着玩的.flv")); //读入原文件 fileOutputStream = new FileOutputStream("C:to不是闹着玩的.flv"); byte[] bufferArray = new byte[1024*1024]; int length; while ((length = fileInputStream.read(bufferArray)) != -1) { fileOutputStream.write(bufferArray, 0, length); } } catch (IOException e) { e.printStackTrace(); } finally { try { if(fileInputStream != null){ fileInputStream.close(); } if(fileOutputStream != null){ fileOutputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } long end = System.currentTimeMillis(); System.out.println("视频文件从“from”文件夹复制到“to”文件需要" + (end - start) + "毫秒。"); } } ![]() (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |