1. 程式人生 > >Java實用方法整理(二十)——IO流之BufferedInputStream、BufferedOutputStream

Java實用方法整理(二十)——IO流之BufferedInputStream、BufferedOutputStream

1,描述

BufferedInputStream、BufferedOutputStream是Java為高效傳輸IO流而設計的一種緩衝區類,使用方法和InputStream、OutputStream類似。下面用一個簡單的檔案複製的案例(同Java實用方法整理(十九)中的案例三)來說明它們的用法。

2,案例+原始碼

需求:將原始檔複製到目的地檔案中(大家可以直接測試下面的這段程式,效率真的很高0.0

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

/**
* @author Manduner_TJU
* @version 建立時間:2018年11月2日下午6:50:39
*/
public class TestBufferIO {
	public static void main(String[] args) throws IOException {
		//1,封裝資料來源
		BufferedInputStream bis = new BufferedInputStream(
				new FileInputStream("e:\\test.mp4"));
		BufferedOutputStream bos = new BufferedOutputStream(
				new FileOutputStream("g:\\testNew.mp4"));
		//==========開始時間============//
		long timeStart = System.currentTimeMillis();
		
		//2,複製檔案
		byte[] bys = new byte[256];
		int len = 0;
		while((len = bis.read(bys))!=-1) {
			bos.write(bys,0,len);
		}
		//3,釋放資源
		bis.close();
		bos.close();
		//========結束時間==============//
		long timeEnd = System.currentTimeMillis();
		float time = (float)(timeEnd-timeStart)/1000;
		
		System.out.println("檔案複製完畢,共用時"+
				String.format("%.2f", time)+"s");//0.07s
	}
}