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); }}