java Io流中FileInputStream和BufferedInputStream的速度比較


 

首先是對FileInputStream 加上 FileOutputStream 對文件拷貝的應用

我這里拷貝的是一個視頻。當然,你們拷貝什么都可以,當文件越大時效果越明顯

下面是對BufferedInputStream 和 BufferedOutputStream 對文本拷貝的應用

最后在主程序測試剛寫的兩個方法,分別計算它們的運行時間差,並輸出到控制台

 

package com.teacher;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class DifferBuffer {

	public static void main(String[] args) {
		
		long beginTime = System.currentTimeMillis();
		copyFileBuffer();
		long endTime = System.currentTimeMillis();
		System.out.println("Buffered拷貝所花的時間:"+(endTime-beginTime)+"毫秒");
		
		long beginTime1 = System.currentTimeMillis();
		copyFile();
		long endTime1 = System.currentTimeMillis();
		System.out.println("FileIn/Out拷貝所花的時間:"+(endTime1-beginTime1)+"毫秒");
	}
	
	public static void copyFileBuffer(){
		File file=  new File("e:/io");
		file.mkdir();
		try {
			BufferedInputStream bin = new BufferedInputStream(new FileInputStream("e:/io/第二講_1.wrf"));
			BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream("e:/io/twoce.wrf"));			
			byte[] bt = new byte[1024];
			int n=0;
			while ((n=bin.read(bt))!=-1) {
				bout.write(bt, 0, n);
				bout.flush();
			}
			bin.close();
			bout.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static void copyFile(){
		try {
			FileInputStream fin = new FileInputStream("e:/io/第二講_1.wrf");
			FileOutputStream  fout=new FileOutputStream("e:/io/twoce3333.wrf");
			
			byte[]  by = new byte[1024];
			int len = 0;
			while ((len=fin.read(by))!=-1) {
				fout.write(by, 0, len);
				fout.flush();
			}
			fout.close();
			fin.close();
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	
	
}

  

 

 

結果圖:當拷貝的文件越大時,這個時間差就越明顯。可以看出使用Buffered 緩沖的效率很高。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM