位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > Java > 問(wèn)題詳情

Java BufferedlnputStream 類(lèi)和 BufferedOutputStream 類(lèi)

提問(wèn)人:劉旭39發(fā)布時(shí)間:2020-11-28

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();

}

}

}

6EA)3W%4D8U5N(ZR8{3C{80.png

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部