1. 程式人生 > >IO中關於自定義緩沖區和使用默認緩沖區哪個效率更高的對比

IO中關於自定義緩沖區和使用默認緩沖區哪個效率更高的對比

buffered code rtti rtt 測試 iso ndt end oid

//自己測試了一個3.8G的文件,有興趣的可以自己試試看,初學java寫的不對的地方希望大家能指出,有疑問可以留言一起探討,謝謝!
 1 package cn.String.Day.IO;
 2 
 3 import java.io.*;
 4 
 5 /**
 6  * Created by Void on 2017/6/20.
 7  */
 8         public class copyInputOutput {
 9             public static void main(String[] args) throws IOException {
10                 bufferTime();
11 imbufferTime(); 12 13 } 14 private static void imbufferTime() throws IOException { 15 FileInputStream fileInputStream = new FileInputStream("D:\\360安全瀏覽器下載\\win7中文旗艦版64位系統.iso"); 16 FileOutputStream fileOutputStream = new FileOutputStream("e:\\win7旗艦版64bit.iso");
17 long startTime = System.currentTimeMillis() ; 18 byte[] by = new byte[4096]; 19 int len = 0; 20 while ((len = fileInputStream.read(by))!=-1){ 21 fileOutputStream.write(by,0,len); 22 23 } 24 fileOutputStream.close(); 25 fileInputStream.close();
26 long endTime = System.currentTimeMillis(); 27 System.out.println("自定義緩沖花費的時間是:"+(endTime-startTime)/1000); 28 } 29 30 private static void bufferTime() throws IOException { 31 32 BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("D:\\360安全瀏覽器下載\\win7中文旗艦版64位系統.iso"),4096); 33 34 BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("e:\\win7旗艦版64bit.iso"),4096); 35 long startTime = System.currentTimeMillis() ; 36 int len = 0; 37 while ((len = bufferedInputStream.read())!=-1){ 38 bufferedOutputStream.write(len); 39 40 } 41 bufferedOutputStream.close(); 42 bufferedInputStream.close(); 43 long endTime = System.currentTimeMillis(); 44 System.out.println("原緩沖花費的時間是:"+(endTime-startTime)/1000); 45 } 46 }

IO中關於自定義緩沖區和使用默認緩沖區哪個效率更高的對比