内置了一个缓冲区(数组)缓冲流BufferInputStream为何要配合字节数组的使用?

简介: 内置了一个缓冲区(数组)缓冲流BufferInputStream为何要配合字节数组的使用?

内置了一个缓冲区(数组)缓冲流BufferInputStream为何要配合字节数组的使用?

只为效率而积累【积少成多送一趟比送多趟快】

 

举例子:超市买30个鸡蛋回家煮

 

(1)读一个送一个(效率太低啦)

inputStream.read();          //就像去一趟超市买了一个鸡蛋就回家,按照这剧情,买30个鸡蛋,需要跑超市-家(30趟)       oh,my god!

 

bufferedInputStream.read();    //就像买一个鸡蛋暂时放到离超市很近的老王家,按照这剧情,可以超市-老王家(老王只允许给放8个鸡蛋)8个鸡蛋,然后8个鸡蛋再拿回家,然后超市-老王家又8个鸡蛋,然后再回一次家。。。。。30个鸡蛋,就变成去30次离超市很近的老王家,回四次家啦(路程已经缩减,但是就是那啥,去老王家次数太多了。。。。。)

 

 

 

(2)一次性读取多个字节(配合字节数组的使用

定义一个字节数组   byte[ ] buff = new byte[5];

inputStream.read(buff);       //就像去一趟超市买了五个鸡蛋就回家,按照这剧情,买30个鸡蛋,需要跑超市-家(6趟)不错,效率提升了。

 

bufferedInputStream.read(buff); //就像买五个鸡蛋暂时放到离超市很近的老王家,按照这剧情,可以超市-老王家(老王只允许给放8个鸡蛋)8个鸡蛋,然后8个鸡蛋再拿回家,然后超市-老王家又8个鸡蛋,然后再回一次家。。。。。30个鸡蛋,就变成去6次离超市很近的老王家,回四次家啦(效率比inputStream更高,因为老王家离超市真的很近)

 

目录
相关文章
|
6月前
|
C语言 C++
文件底层的理解之缓冲区
文件底层的理解之缓冲区
|
6月前
|
Java API 数据库
IO流【转换流、字符输出流、数据流、对象流】(三)-全面详解(学习总结---从入门到深化)
IO流【转换流、字符输出流、数据流、对象流】(三)-全面详解(学习总结---从入门到深化)
64 0
|
NoSQL Java Redis
字节数组流ByteArrayOut(In)putStream使用详解
字节数组流ByteArrayOut(In)putStream使用详解
56 0
|
算法 Java
字符串缓冲区
字符串缓冲区
129 1
|
编解码 Java
IO特殊操作流:标准输入输出流、字节打印流及字符打印流
IO特殊操作流:标准输入输出流、字节打印流及字符打印流的简单示例
351 0
IO特殊操作流:标准输入输出流、字节打印流及字符打印流
|
Java
字符串、字符流中的编码解码问题、字符流写数据的5种方式、字符流读数据的2种方式及复制Java文件
字符串、字符流中的编码解码问题、字符流写数据的5种方式、字符流读数据的2种方式及复制Java文件的简单示例
135 0
字符串、字符流中的编码解码问题、字符流写数据的5种方式、字符流读数据的2种方式及复制Java文件
IO流的字节流的缓冲和非缓冲方式的区别及性能对比
IO流的字节流的缓冲和非缓冲方式的区别及性能对比
259 0
|
机器学习/深度学习 索引
【Netty】NIO 缓冲区 ( Buffer ) ( 缓冲区读写类型 | 只读缓冲区 | 映射字节缓冲区 )(二)
【Netty】NIO 缓冲区 ( Buffer ) ( 缓冲区读写类型 | 只读缓冲区 | 映射字节缓冲区 )(二)
133 0
【Netty】NIO 缓冲区 ( Buffer ) ( 缓冲区读写类型 | 只读缓冲区 | 映射字节缓冲区 )(二)
|
存储
内存操作流 ByteArrayInputStream和ByteArrayOutputStream(四)
内存操作流 ByteArrayInputStream和ByteArrayOutputStream(四)
283 0
内存操作流 ByteArrayInputStream和ByteArrayOutputStream(四)
|
存储
【Netty】NIO 缓冲区 ( Buffer ) ( 缓冲区读写类型 | 只读缓冲区 | 映射字节缓冲区 )(一)
【Netty】NIO 缓冲区 ( Buffer ) ( 缓冲区读写类型 | 只读缓冲区 | 映射字节缓冲区 )(一)
203 0