IO流——BufferedInputStream和BufferedOutputStream流概述

**BufferedInputStream和BufferedOutputStream这两个流内置了缓冲区流,即内部有一个字节数组。
这两个类没有我们用FileInputStream和FileOutputStream好用,因为它的内部每次读取8KB字节,不能修改,如果想读取10KB,就没有办法了。
**

1. 案例:拷贝音频文件

//1.创建缓冲输入流
FileInputStream fis=new FileInputStream("C:/Users/Administrator/Desktop/a/ghsy.mp3");
BufferedInputStream bis=new BufferedInputStream(fis);
//2.创建缓冲输出流
FileOutputStream fos=new FileOutputStream("C:/Users/Administrator/Desktop/a/ghsy1.mp3");
//3.输入流读数据,输出流写数据
int b=0;
//bis.read()方法每次内部会读8KB数据
while((b=bis.read())!=-1){
bos.write(b);//内部每次会写8KB数据
}
//4.关闭流,只用关缓冲流,不用关文件流,因为缓冲流内部会自动关文件流
bis.close();
bos.close();

2.BufferedOutputStream的flush()和close()的区别

flush()用来刷新缓冲区的,刷新后可以再次写入。
closfe()用来关闭释放资源,如果带缓冲区的流对象的close()方法,不但会关闭流,还会在关闭之前刷新缓冲区,关闭之后不能写入。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值