缓冲流的使用
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将写入内容刷新到硬盘
如上图,写入成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律