缓冲流的使用

BufferedInputStream

BufferedInputStream:输入缓冲流,用于增强字节输入流

BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark和reset方法的能力。在创建BufferedInputStream时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。mark操作记录输入流中的某个点,reset操作使得在从包含的输入流中获取新字节之前,再次读取自最后一次mark操作后读取的所有字节。

程序

1.固定缓冲区读取

每次读取8k

2.自定缓冲区


注意点:

1.bis.read();固定缓冲区每次读取8k
2.data!=-1代表字节还没有读取完毕,继续往下读
3.缓冲流的作用就是增强fis节点流
4.关闭流时关闭缓冲流即可

BufferedOutputStream

BufferedOutputStream:输出缓冲流,用于增强字节输出流

该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。

程序

1.创建流

2.写入文件


查看写入的txt文件

发现写入内容以后文件为空,这是为什么呢?

分析上图BufferedOutputStream源码发现:

bos.write();写入内容不超过8k时将内容写入缓冲区,所以此时记事本内容为空

那么该如何写入记事本呢?

写入成功

3.关闭

执行关闭指令时会自动调用flush将写入内容刷新到硬盘

如上图,写入成功

posted @   无关风月7707  阅读(111)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示