BufferedInputStream與FileInputStream的IO效率對比
阿新 • • 發佈:2019-02-20
下面的程式碼主要就是分別使用FileInputStream、BufferedInputStream來讀取相同內容的兩個TXT檔案,計算其時間之差。
public class test{ public static void main(String args[]){ try { long start = System.currentTimeMillis(); System.out.println("程式開始執行的時間為:"+start); File fi = new File("E:/asd.txt"); FileInputStream fis = new FileInputStream(fi); int c=fis.read(); while(c!=-1){ System.out.print((char)c); c=fis.read(); } long end = System.currentTimeMillis(); System.out.println("程式執行結束的時間為: "+end); System.out.println("程式執行時間為:" + (end - start) + "毫秒"); start = System.currentTimeMillis(); System.out.println("程式開始執行的時間為:"+start); File afi = new File("E:/asdasd.txt"); FileInputStream afis = new FileInputStream(afi); BufferedInputStream bis = new BufferedInputStream(afis); c=bis.read(); while(c!=-1){ System.out.print((char)c); c=bis.read(); } end = System.currentTimeMillis(); afis.close(); fis.close(); bis.close(); System.out.println("程式執行結束的時間為: "+end); System.out.println("程式執行時間為:" + (end - start) + "毫秒"); } catch (Exception el) { el.printStackTrace(); } } }
第一次測試時asd.txt與asdasd.txt的內容,大小為1KB。
abcdefghijklmnopqrstuvwxyz
執行結果:
程式開始執行的時間為:1369837963924
檔案內容: abcdefghijklmnopqrstuvwxyz
程式執行結束的時間為: 1369837963926
程式執行時間為:2毫秒
程式開始執行的時間為:1369837963926
檔案內容: abcdefghijklmnopqrstuvwxyz
程式執行結束的時間為: 1369837963927
程式執行時間為:1毫秒
這只是一小段內容,不能體現什麼,第二次使用了一個98KB的小說來測試,內容過多就沒有輸出,結果如下:
程式開始執行的時間為:1369838163631
檔案內容:
程式執行結束的時間為: 1369838164235
程式執行時間為:604毫秒
程式開始執行的時間為:1369838164236
檔案內容:
程式執行結束的時間為: 1369838164239
程式執行時間為:3毫秒
結果可見其時間相差多少,BufferedInputStream提高的IO效率有多高,這次測試乃是無聊之作,若有什麼問題,請指出。