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

Java BufferedlnputStream 類和 BufferedOutputStream 類

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

BufferedlnputStream 類和 BufferedOutputStream 類

BufferedlnputStream類,其父類為FilterlnputStream類,也是InputStream類的子類,可以為輸入 流對象提供緩存區(qū)的功能,用來提高數(shù)據(jù)讀取效率。創(chuàng)建一個BufferedlnputStream對象時,必須先指定一個InputStream類型的實例對象,具體有以下兩種構造方法:

Buffere(lInputStream(InpulSLream in);//創(chuàng)建一個默認緩存區(qū)為8192字節(jié)的輸人流對象 Buffere(lnputStream(InputStream in, int size);〃創(chuàng)建指定緩存區(qū)的輸人流對象,其中size為緩存大小,單位為字節(jié)

BufferedlnputStfeam類中的方法都是從InputStream類中繼承而來,使用方法與InputStream類中的 方法一樣3 BuffcredlnputSteam類本質上是通過一個內部的緩存區(qū)數(shù)組實現(xiàn)的,當使用read()方法讀 取輸人流數(shù)據(jù)時,會將輸人流數(shù)據(jù)分批次填充到緩存區(qū)中,每當一個緩存區(qū)數(shù)據(jù)讀完后,輸入流 會再次填充數(shù)據(jù)緩存區(qū),如此反復直到讀取完所有輸入流數(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;

//定義一個緩沖區(qū)

byte[] buffer = new byte[1024];

int flag = 1;

while ((flag = bufferInput.read(buffer)) != -1) {

content += new String(buffer,0,flag);

}

System.out.println("輸出緩存內容為:");

System.out.println(content);

bufferInput.close(); // 關閉流 )

} catch (Exception e) {

e.printStackTrace();

}

}

}

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

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

相關視頻回答
回復(0)
返回頂部