首页 > 其他分享 >字节缓冲流读写原理

字节缓冲流读写原理

时间:2023-02-23 20:57:51浏览次数:22  
标签:字节 缓冲 读写 流中 缓冲区 数据

在字符输入流FileReader和字符输出流FileWriter的底层应用了缓存区技术用于提高读写效率,但是在字节流的基本流中并没有提高。java在为了弥补这一缺陷,在字节缓冲流中应用了这一技术进行优化

字节缓冲流

  • 缓冲流中Io中的架构

    我们可以看到字符流和字节流都有缓冲流,缓冲流属于高级流,所谓高级流可以理解为封装了基本流并在基本流的基本上添加了一些新的方法的流。但在高级流的底层其实还是基本流在读写数据

字节缓冲流原理

java在字节缓冲输入流BufferInputStream和字节缓冲输出流BufferOutputStream各提供了一个缓冲区(大小为8192个字节的字节数组)
当我们的输入流开始从文件中读数据的时候,会先判断缓冲区中是否有数据,如果没有会将文件中的数据读取到缓冲区,并尽可能读满缓冲区,然后在每次读取的时候从缓冲区中进行读取。用输出流写入数据时会先将数据写入到缓冲区,当1.缓冲区满了,2.资源关闭3.刷新缓冲区的时候再一同写到文件中



这样做的优化就是我们不用频繁的进行文件和内存之间的数据交流了。在上图中我们只需要使用变量b进行内存中的数据交流了,这样效率会快得多

标签:字节,缓冲,读写,流中,缓冲区,数据
From: https://www.cnblogs.com/swtaa/p/17149276.html

相关文章

  • python | 使用PIL压缩图片并使用字节流输出
    python|使用PIL压缩图片并使用字节流输出因为自己服务器上的博客流量比较小,所以加了这个用来压缩图片,不改变图片大小,将图像质量降低。直接丢代码了:importosfromio......
  • 读写锁
    介绍#include<pthread.h>intpthread_rwlock_init(pthread_rwlock_t*restrictrwlock,constpthread_rwlockattr_t*restrictattr);int......
  • java 文件字节输入流
      Example10_4.javaimportjava.io.*;publicclassExample10_4{publicstaticvoidmain(Stringargs[]){intn=-1;byte[]a=newbyte[1......
  • 嵌入式开发学习之--IIC读写EEPROM(上)
    提示:本章主要学习IIC协议,了解其原理以及使用方法。文章目录​​前言​​​​一、IIC协议简介​​​​1.1、IIC物理层​​​​1.2、协议层​​​​1.2.1、I2C基本读写过程​......
  • Pandas从SQL型数据库读写数据
    Pandas读写SQL型数据库主要用到pandas.read_sql()和DataFrame.to_sql()两个函数。read_sql()read_sql主要有如下几个参数:sql:SQL命令字符串con:连接sql数据库的......
  • 主机字节顺序和网络字节顺序
    字节顺序单个字节,不存在字节顺序这一说字节顺序就相当于排队是从高往低排还是从低往高排。从高往低排就是大端字节顺序从低往高排就是小端字节顺序具体定义小端字节......
  • WinSCP 一直提示优化缓冲大小
    一、点击高级如下设置 二、点击工具-》选项-》如下图设置   配置完毕即可链接......
  • 字节流的基本流:FileInputStream
    FileInputStream的基本用法字节输出流的循环读取文件的拷贝文件拷贝的弊端和改进方案FileInputStream的基本用法packagecom;importjava.io.*;public......
  • 字节输出流的基本流:FileOutputStream
    写入和读出的正确辨识为什么不能用来写入中文FileOutStream写数据的3种方式解决续写和换行问题我们的File类只能操作文件本身,而对于文件中的数据而无法操作,我们的IO......
  • 阿里云RDS读写分离数据查询延迟
    环境:mysql数据库,上到阿里云RDS中。实现了读写分离。问题数据库中表更新后,查询不到数据(偶发)原因没有实现微服务。由于我们数据库在阿里云的RDS中实现了读写分离。受限于mys......