字符流和字节流都提供了相应的缓冲流处理
字节流对应的缓冲流

  • BufferedInputStream 字节缓冲输入流
  • BufferedOutputStream 字节缓冲输出流

字符流对应的缓冲流

  • BufferedReader 字符缓冲输入流
  • BufferedWriter 字符缓冲输出流

    缓冲流作用:提高节点流的效率

一、字节缓冲流使用

ByteStreamCopyUtils.java

文件的复制,使用缓冲流来进行加速

1.1、使用缓冲流加速

image.png

1.2、对比未使用缓冲流

image.png
结果:
image.png

1.3、缓冲流能够提高效率解析

image.png

用8192个字节(8Kb)的缓冲区 flush()可以强制将缓冲区的内容全部写入输出流

对比两者对比如下:

image.png
节点流的读取,每次从文件中读取 1024 字节/字符
缓冲流,读取一次数据先存放在内存中,直到内存指定缓冲区满了,再从缓冲区读数据

  • 内存数据处理,效率高于磁盘文件操作

二、字符流缓冲流

CharStreamReaderTest.java

文本文件读取,使用缓冲流加速

image.png
缓冲流效率高理由同上