Java BufferedlnputStream 類(lèi)和 BufferedOutputStream 類(lèi)
BufferedlnputStream 類(lèi)和 BufferedOutputStream 類(lèi)
BufferedlnputStream類(lèi),其父類(lèi)為FilterlnputStream類(lèi),也是InputStream類(lèi)的子類(lèi),可以為輸入 流對(duì)象提供緩存區(qū)的功能,用來(lái)提高數(shù)據(jù)讀取效率。創(chuàng)建一個(gè)BufferedlnputStream對(duì)象時(shí),必須先指定一個(gè)InputStream類(lèi)型的實(shí)例對(duì)象,具體有以下兩種構(gòu)造方法:
Buffere(lInputStream(InpulSLream in);//創(chuàng)建一個(gè)默認(rèn)緩存區(qū)為8192字節(jié)的輸人流對(duì)象 Buffere(lnputStream(InputStream in, int size);〃創(chuàng)建指定緩存區(qū)的輸人流對(duì)象,其中size為緩存大小,單位為字節(jié)
BufferedlnputStfeam類(lèi)中的方法都是從InputStream類(lèi)中繼承而來(lái),使用方法與InputStream類(lèi)中的 方法一樣3 BuffcredlnputSteam類(lèi)本質(zhì)上是通過(guò)一個(gè)內(nèi)部的緩存區(qū)數(shù)組實(shí)現(xiàn)的,當(dāng)使用read()方法讀 取輸人流數(shù)據(jù)時(shí),會(huì)將輸人流數(shù)據(jù)分批次填充到緩存區(qū)中,每當(dāng)一個(gè)緩存區(qū)數(shù)據(jù)讀完后,輸入流 會(huì)再次填充數(shù)據(jù)緩存區(qū),如此反復(fù)直到讀取完所有輸入流數(shù)據(jù)。
import java.io.BufferedInputStream;
import java.io.FileInputStream;
//BufferedInputStream類(lèi)示例
public class BufferedDemo {
public static void main(String[] args) {
try {
FileInputStream input = new FileInputStream("data.txt");
BufferedInputStream bufferInput = new BufferedInputStream(input);
String content = null;
//定義一個(gè)緩沖區(qū)
byte[] buffer = new byte[1024];
int flag = 1;
while ((flag = bufferInput.read(buffer)) != -1) {
content += new String(buffer,0,flag);
}
System.out.println("輸出緩存內(nèi)容為:");
System.out.println(content);
bufferInput.close(); // 關(guān)閉流 )
} catch (Exception e) {
e.printStackTrace();
}
}
}
點(diǎn)擊加載更多評(píng)論>>