IO流-07:缓冲流

一、什么是缓冲流?

前面学的四种流,都有对应的缓冲流,来改善原来的性能,如下:

这四种缓冲流,都改善了原来对应流的性能。好比一台改装车,性能更加强劲了。

二、缓冲字节流

1、不使用缓冲字节流的情景

如下图,我们想要从D盘,复制一个16KB大小的文件,到C盘。

我们定义的字节数组(一个小桶)长度是1KB。

这样,输入到内存中,需要调用磁盘16次;输出到文件,需要调用磁盘16次。

这样一来,需要调用磁盘IO操作32次。很频繁,并且磁盘速度很慢,会拖累内存的速度,因此此时性能不好。

2、使用缓冲字节流的情景

此时,设置一个缓冲池(可以理解为一个大桶,容量为8KB),我们每次从磁盘读的字节,都存入这个大桶。这样只需要调用磁盘2次。输出时,也是从大桶往文件里写,也需要调用磁盘2次。

这样一来,只需要调用磁盘4次,缩短了和磁盘交流的次数,降低了磁盘对内存的速度影响,从而提高了IO性能。

综上,缓冲字节流的作用:降低调用磁盘的次数,提高性能。

3、如何将原来的流,包装成缓冲流?

举例:

4、总结

①缓冲流有几种?

四种。

  • 缓冲字节输入流:BufferedInputStream
  • 缓冲字节输出流:BufferedOutputStream
  • 缓冲字符输入流:BufferedReader
  • 缓冲字符输出流:BufferedWriter

②缓冲字节流为什么提高了字节流读写数据的性能?

缓冲字节流,自带了8KB的缓冲区,可以较少调用磁盘的次数,从而降低磁盘(速度慢)对内存(速度快)的影响。因此会提高读取数据的性能。

③缓冲字节流如何使用?

缓冲流功能上和原来并无很大差异,但是确实提高了性能。

三、缓冲字符流

相关推荐
这个DBA有点耶2 分钟前
数据库“家谱”系列之一:关系型数据库的4大核心组件详解
数据库·mysql·架构
ClouGence8 分钟前
数据库迁移同步工具 CloudCanal v6.4.0.0 发布,Oracle、SAP Hana 等同步能力再升级
数据库
ClouGence9 分钟前
2026 数据库 CI/CD 工具大盘点:4 款热门工具怎么选?
数据库·后端·ci/cd
云和恩墨10 分钟前
云和恩墨亮相2026数博会,与超聚变联合呈现“算力+数据”一体化管理方案
数据库
ClouGence31 分钟前
数据库 CI/CD 再升级:CloudDM 4.1.0 支持多数据库发布流编排
数据库·sql·ci/cd
SelectDB34 分钟前
为什么越来越多分析数据库开始重视实时更新,而不仅仅是查询性能?
大数据·数据库·数据分析
SelectDB37 分钟前
为什么今天值得重新比较 Apache Doris 和 StarRocks?
大数据·数据库·数据分析
l12586538 分钟前
# LangGraph Deep Research Agent 全流程设计:多轮研究、人机协同与真实来源管理
数据库·人工智能·python·算法·自然语言处理·oracle·langchain
Frank_refuel38 分钟前
MYSQL【进阶】 -> 索引(了解)
数据库·mysql
SelectDB44 分钟前
开源!Apache Doris 上线 Profile 可视化诊断:基于 Doris Skills 破解 AI 误诊难题
数据库·agent·自动化运维