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

Java BufferedlnputStream 類和 BufferedOutputStream 類

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

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

}

}

}

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

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

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