字节缓存流

字节缓存流有两个。一个是BufferedOutputStream,该类实现缓存输出流。另一个是BufferedInputStream,该类提高了读写效率

首先我们学习一下BufferedOutputStream类,该类是具体类,该类继承了FilterOutputStream 该类的爷爷是OutputStream类,所以该类是字节输出流 该类的所有实现接口为:Closeable、Flushable、AutoCloseable

该类实现了缓冲流。通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用

 

该类的构造方法如下 BufferedOutputStream(OutputStream out) 创建新的缓冲输出流以将数据写入指定的基础输出流 BufferedOutputStream(OutputStream out, int size) 创建新的缓冲输出流,以使用指定的缓冲区大小将数据写入指定的基础输出流

 

该类向另一个输入流添加功能,即缓冲输入并支持mark和reset方法的功能。 创建BufferedInputStream将创建内部缓冲区阵列。 当读取或 跳过来自流的字节时,内部缓冲区根据需要从包含的输入流中重新填充,一次多个字节。 mark操作会记住输入流中的一个点,并且reset操作会导致在 从包含的输入流中获取新字节之前重新读取自最近的mark操作以来读取的所有字节

 

该类的构造方法 BufferedInputStream(InputStream in) 创建一个BufferedInputStream并保存其参数,即输入流 in ,供以后使用 BufferedInputStream(InputStream in, int size) 创建具有指定缓冲区大小的BufferedInputStream,并保存其参数(输入流in)供以后使用

 

为什么构造方法需要的是字节流,而不是具体的文件或者路径?如下 因为:字节缓冲流静静提供缓冲区,而真正的读写数据还得依靠基本的字节流对象进行操作

 

字节缓存流的练习

 

字节流复制视频