加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用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) + "毫秒。");
 }
}

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读