位置:首页 > 软件操作教程 > 编程开发 > Java > 问题详情

Java BufferedlnputStream 类和 BufferedOutputStream 类

提问人:刘旭39发布时间:2020-11-28

BufferedlnputStream 类和 BufferedOutputStream 类

BufferedlnputStream类,其父类为FilterlnputStream类,也是InputStream类的子类,可以为输入 流对象提供缓存区的功能,用来提高数据读取效率。创建一个BufferedlnputStream对象时,必须先指定一个InputStream类型的实例对象,具体有以下两种构造方法:

Buffere(lInputStream(InpulSLream in);//创建一个默认缓存区为8192字节的输人流对象 Buffere(lnputStream(InputStream in, int size);〃创建指定缓存区的输人流对象,其中size为缓存大小,单位为字节

BufferedlnputStfeam类中的方法都是从InputStream类中继承而来,使用方法与InputStream类中的 方法一样3 BuffcredlnputSteam类本质上是通过一个内部的缓存区数组实现的,当使用read()方法读 取输人流数据时,会将输人流数据分批次填充到缓存区中,每当一个缓存区数据读完后,输入流 会再次填充数据缓存区,如此反复直到读取完所有输入流数据。

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;

//定义一个缓冲区

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

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部