zoukankan      html  css  js  c++  java
  • (转)四种复制文件的效率高低

    四种复制文件的效率高低

    package io2;
    
    import java.io.*;
    
    /**
     *
     * 测试复制的时间
     * Create by stefan
     * Date on 2018-05-28  10:28
     * Convertion over Configuration!
     */
    public class copy2 {
        //一个字节一个字节的复制,耗时22697毫秒
        public static  void  fun() throws IOException {
            FileInputStream fis = new FileInputStream("F:\汤包\慕课大巴\modern-java.pdf");
            FileOutputStream fos = new FileOutputStream("E:\modern-java.pdf");
            int by = 0;
            while ((by=fis.read()) != -1) {
                fos.write(by);
                fos.flush();
            }
            fis.close();
            fos.close();
        }
        //1024字节数组复制 耗时63毫秒
        public  static void  fun1() throws IOException {
            FileInputStream fis = new FileInputStream("F:\汤包\慕课大巴\modern-java.pdf");
            FileOutputStream fos = new FileOutputStream("E:\modern-java.pdf");
            int len = 0;
            byte[] bytes =new byte[1024];
            while ((len=fis.read(bytes)) != -1) {
                fos.write(bytes,0,len);
                fos.flush();
            }
            fis.close();
            fos.close();
        }
        // 一个字节一个字节复制,但是用了缓冲流 耗时64毫秒
        public static   void  fun2() throws IOException {
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("E:\modern-java.pdf"));
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\汤包\慕课大巴\modern-java.pdf"));
            int by = 0;
            while ((by=bis.read()) != -1) {
                bos.write(by);
                bos.flush();
            }
            bis.close();
            bos.close();
        }
        // 1024字节数组复制并用了缓冲流 耗时7毫秒
        public  static void  fun3() throws IOException {
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("E:\modern-java.pdf"));
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\汤包\慕课大巴\modern-java.pdf"));
            int len = 0;
            byte[] bytes =new byte[1024];
            while ((len=bis.read(bytes)) != -1) {
                bos.write(bytes,0,len);
                bos.flush();
            }
            bis.close();
            bos.close();
        }
    
        public static void main(String args[]) throws IOException {
            long t1 = System.currentTimeMillis();
            fun3();
            long t2 = System.currentTimeMillis();
            System.out.println(t2-t1);
        }
    
    }

    转自https://www.jianshu.com/p/63d1751d3eac

  • 相关阅读:
    Eclipse consle 输出语句中,误输中文,假死问题
    Eclipse 快捷键 (最实用)
    mysql 4种启动方式
    mysql索引的类型和优缺点
    Windows上 使用Composer安装tp5
    php 更新配置文件
    可视化工具连接Linux上的redis
    HttpClient 4 教程 第3章 HTTP状态管理
    HttpClient 4 教程 第2章 连接管理
    HttpClient 4 教程 第1章 基础
  • 原文地址:https://www.cnblogs.com/ZJ0065/p/10928925.html
Copyright © 2011-2022 走看看