1. 程式人生 > >BufferedInputStream與FileInputStream的IO效率對比

BufferedInputStream與FileInputStream的IO效率對比

下面的程式碼主要就是分別使用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效率有多高,這次測試乃是無聊之作,若有什麼問題,請指出。