BufferedInputStream和BufferedOutputStream

过滤流,需要使用已经存在的节点流来构造,提供带缓冲的读写,提高了读写的效率。BufferedInputStream派生自java.io.FilterInputStream,并不是InputStream。在后面将看到BufferedReader派生自Reader,而不是派生自FilterReader,这个可能是SUN公司在设计上的一个小bug吧!BufferedOutputStream的构造函数有BufferedOutputStream(OutputStream out),之所以说它需要一个已经存在的输入节点流,就是因为构造函数的参数类型是OutputStream,然而FileOutputStream派生自OutputStream。所以可以把FileOutputStream类型的对象放进去。

BufferedOutputStream

复制代码
   
   
import java.io.*;

public class StreamTest {
public static void main(String[] args) throws IOException {

String path
= System.getProperty("user.dir") + File.separator + "temp.txt";

File file
= new File(path);

OutputStream os
= new FileOutputStream(file);

OutputStream bufferedOutputStream
= new BufferedOutputStream(os);

bufferedOutputStream.write(
"BufferedOutputStream".getBytes());

bufferedOutputStream.flush();

bufferedOutputStream.close();


InputStream is
= new FileInputStream(file);

InputStream bufferedInputStream
= new BufferedInputStream(is);

byte[] buf = new byte[1024];

int len = bufferedInputStream.read(buf);// 将读到的字节放在字节数组中

int off = 0;// 从什么地方开始读取

String str
= new String(buf, off, len);

System.out.println(str.toUpperCase());

bufferedInputStream.close();
}
}
复制代码

 

只需要将过滤流关闭就可以了。

 

遵从先打开的后关闭也可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值