文件下载比较

package demo2;

import java.io.*;


public class Stream{
    //一个字节一个字节的复制,耗时11736毫秒
    public static  void  fun() throws IOException {
        FileInputStream fis = new FileInputStream("C:\\Users\\intasect\\Desktop\\Koala.jpg");
        FileOutputStream fos = new FileOutputStream("C:\\Users\\intasect\\Desktop\\fz.jpg");
        int by = 0;
        while ((by=fis.read()) != -1) {
            fos.write(by);
        }
        fis.close();
        fos.close();
    }
    //1024字节数组复制 耗时21毫秒
    public  static void  fun1() throws IOException {
         FileInputStream fis = new FileInputStream("C:\\Users\\intasect\\Desktop\\Koala.jpg");
         FileOutputStream fos = new FileOutputStream("C:\\Users\\intasect\\Desktop\\fz.jpg");
        int len = 0;
        byte[] bytes =new byte[1024];
        while ((len=fis.read(bytes)) != -1) {
            fos.write(bytes,0,len);
        }
        fis.close();
        fos.close();
    }
    // 一个字节一个字节复制,但是用了缓冲流 耗时64毫秒
    public static   void  fun2() throws IOException {
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\intasect\\Desktop\\fz.jpg"));
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\Users\\intasect\\Desktop\\Koala.jpg"));
        int by = 0;
        while ((by=bis.read()) != -1) {
            bos.write(by);
        }
        bis.close();
        bos.close();
    }
    // 1024字节数组复制并用了缓冲流 耗时7毫秒
    public  static void  fun3() throws IOException {
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\intasect\\Desktop\\fz.jpg"));
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\Users\\intasect\\Desktop\\Koala.jpg"));
        int len = 0;
        byte[] bytes =new byte[1024];
        while ((len=bis.read(bytes)) != -1) {
            bos.write(bytes,0,len);
        }
        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);
    }

}

posted @ 2019-04-25 10:42  change丶fl  阅读(141)  评论(0编辑  收藏  举报