目录
-
- 1. 什么是缓冲流
- 2. 缓冲流的分类
- 3. 缓冲流的原理
- 4. 缓冲流API
-
- 4.1 缓冲字节输入输出流
- 4.1 缓冲字符输入输出流
- 5. 案例-出师表排序-写入新的文件
- 6. 原始流、缓冲流的性能分析【重点】
1. 什么是缓冲流
对原始数据进行包装,以提高原始流读写数据的性能
2. 缓冲流的分类
- BufferedInputStream(字节缓冲输入流)
- BufferedOutputStream(字节缓冲输出流)
- BufferedReader(字符缓冲输入流)
- BufferedWriter(字符缓冲输出流)
3. 缓冲流的原理
字节缓冲输入流自带了8KB的缓冲池;字节缓冲输出流也自带了8KB的缓冲池。
假设我们要将D盘16KB的数据复制到C盘当中。
创建一个字节数组,用于读取1KB的数据。
采用原始的文件输入输出流,要从D盘读取16次,写入C盘16次。
采用缓冲流,可以一次读取写入8KB的数据,也就是2次。
缓冲流将数据存储在内存中,所以比直接从硬盘中读取数据要快得多。
4. 缓冲流API
4.1 缓冲字节输入输出流
构造器说明public BufferedInputStream(InputStream inputStream)把低级的字节输入流包装成一个高级的缓冲字节输入流,从而提高读取数据的效率public BufferedOutputStream(OutputStream outputStream)把低级的字节输出流包装成一个高级的缓冲字节输出流,从而提高写数据的效率
4.1 缓冲字符输入输出流
- 字符缓冲输入流
构造器说明public BufferedReader(Reader reader)把低级的字符输入流包装成字符缓冲输入流管道,从而提升字符输入流读写字符数据的性能
方法说明public String readLine()读取一行数据返回,如果没有数据可读了,会返回Null
- 字符缓冲输出流
构造器说明public BufferedWriter(Writer writer)把低级的字符输出流包装成字符缓冲输出流管道,从而提升字符输出流读写字符java基础 io数据的性能
方法说明public void newLine()换行
5. 案例-出师表排序-写入新的文件
6. 原始流、缓冲流的性能分析【重点】
字节数组越大越好,但是达到一定程度,对性能的影响微乎其微。
测试用例:
- 分别使用原始的字节流,以及字节缓冲流复制一个很大的视频
测试步骤:
- 使用低级的字节流按照一个一个字节的形式复制文件。
- 使用低级的字节流按照字节数组的形式复制文件。
- 使用高级的缓冲字节流按照一个一个字节的形式复制文件。
- 使用高级的缓冲字节流按照字节数组的形式复制文件。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/1731.html