当前位置:   article > 正文

BufferedInputStream及相关类介绍_判断bufferedinputstream

判断bufferedinputstream

关于BufferedInputStream 是java提供的具有缓存作用的字节输入流。与之对应的还有BufferedOutStream 和 BufferedRead 和BufferedWriter

这4个都是FilterOutStream的子类。该使用装饰者模式对基础的InputStream进行装饰,并提供了缓存作用。

关于缓冲数组的作用

由于CPU、内存、硬盘三者的速率不匹配,

我们知道,如果一个文件有10KB大小,我们使用byte[1024] 数组 每次读取1kb时,CPU需要进行10次的IO读取,CPU需要终端10次转而执行IO操作。

那么现在引入了BufferedInputStream后,由于这个类内置的缓冲字节数组byte[8192] 。所以当我们第一次调用read()方法时,这个类内部会调用fill()方法,将一次读取8192个字节到缓存数组中。那么我们后续再次调用read()方法时,会首先到缓冲数组中查找,如果数据已经加载到数组中了,那么我们就不需要执行IO中断到硬盘读取。从而提高了读取速率。

BufferedOutputStream同理, 当我们向IO设备(String 、byteArray、object、File)写入操作时, 数据会先写入到缓冲数组中。如果缓冲数组满了之后,才会刷新到实际的地方。 所以在我们文件写入结束后,需要手动关闭这个BufferedOutputStream().close().或者手动调用flush();

关于重复读写的作用

下面聊聊关于mark(readlimit)和reset()方法

==========&

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/146882
推荐阅读
  

闽ICP备14008679号