Java BufferedlnputStream 類和 BufferedOutputStream 類
BufferedlnputStream 類和 BufferedOutputStream 類
BufferedlnputStream類,其父類為FilterlnputStream類,也是InputStream類的子類,可以為輸入 流對(duì)象提供緩存區(qū)的功能,用來提高數(shù)據(jù)讀取效率。創(chuàng)建一個(gè)BufferedlnputStream對(duì)象時(shí),必須先指定一個(gè)InputStream類型的實(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類中的方法都是從InputStream類中繼承而來,使用方法與InputStream類中的 方法一樣3 BuffcredlnputSteam類本質(zhì)上是通過一個(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類示例
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)論>>