关于java中InputStream和BufferedInputStream的比较以及缓冲区概念
来源:互联网 发布:大数据修仙 编辑:程序博客网 时间:2024/05/16 07:44
BufferedInputStream是一个带有缓冲区域的InputStream,它的继承体系如下:
InputStream
|__FilterInputStream
|__BufferedInputStream
创建一个
创建具有指定缓冲区大小的
InputStream
|__FilterInputStream
|__BufferedInputStream
以看作是BufferedInputStream对外提供滑动读取的功能实现,通过预先读入一整段原始输入流数据至缓冲区中,而外界对BufferedInputStream的读取操作实际上是在缓冲区上进行,如果读取的数据超过了缓冲区的范围,那么BufferedInputStream负责重新从原始输入流中载入下一截数据填充缓冲区,然后外界继续通过缓冲区进行数据读取。这样的设计的好处是:避免了大量的磁盘IO,因为原始的InputStream类实现的read是即时读取的,即每一次读取都会是一次磁盘IO操作(哪怕只读取了1个字节的数据),可想而知,如果数据量巨大,这样的磁盘消耗非常可怕。而通过缓冲区的实现,读取可以读取缓冲区中的内容,当读取超过缓冲区的内容后再进行一次磁盘IO,载入一段数据填充缓冲,那么下一次读取一般情况下就直接可以从缓冲区读取,减少了磁盘IO。
BufferedInputStream是套在某个其他的InputStream外,起着缓存的功能,用来改善里面那个InputStream的性能(如果可能的话),它自己不能脱离里面那个单独存在。FileInputStream是读取一个文件来作InputStream。所以你可以把BufferedInputStream套在FileInputStream外,来改善FileInputStream的性能。 可以来看看BufferedInputStream的构造函数就可以知道了
BufferedInputStream(InputStream in)
创建一个
BufferedInputStream
并保存其参数,即输入流 in
,以便将来使用。BufferedInputStream(InputStream in, int size)
创建具有指定缓冲区大小的
BufferedInputStream
并保存其参数,即输入流 in
,以便将来使用。 1 0
- 关于java中InputStream和BufferedInputStream的比较以及缓冲区概念
- 比较InPutStream和BufferedInPutStream的性能
- java基础——bufferedinputstream FileInputStream inputstream的比较
- Java中Inputstream和OutputStream比较
- BufferedInputStream缓冲区的作用
- 关于BufferedInputStream和FileInputStream中Read方法的问题
- C 语言中getch()、getche()和getchar()函数之间的区别以及缓冲区的概念
- Java中BufferedInputStream和FileInputStream的小实验
- InputStream和OutputStream的比较
- Java中String和InputStream的转换
- Java中InputStream和OutputStream的区别
- java 中inputstream 和outputstream的理解
- 关于BufferedInputStream和FileInputStream的区别
- 关于BufferedInputStream和FileInputStream的区别
- java中BufferedInputStream类和FileInputStream区别
- getchar,scanf以及缓冲区的概念
- getchar,scanf以及缓冲区的概念(转)
- getchar、scanf以及缓冲区的概念
- Remove Duplicates from Sorted Array--从有序数组中移除重复元素
- MySQL实现ORALCE的row_number()over(partition by xx)功能
- 重构个人版机房收费系统——模板模式
- Cocos2d-x学习资源
- C语言入门(1)——C语言概述
- 关于java中InputStream和BufferedInputStream的比较以及缓冲区概念
- 计算机硬件(1)
- ajax编码问题
- Struts2中ActionContext介紹&&Struts2如何获得request
- Android应用程序消息处理机制(Looper、Handler)分析
- 设计模式总结之单例模式
- QT编译参数说明
- Android开发之WIFI编程:设置信息登录热点
- cocos2dx-3.0(21) 移植android平台 说多了都是泪