高效流 - 高级流
原理:缓存区临时存放多个数据,一次性调用底层的资源,减少调用的次数,从而提升程序运行的效率
所以在高级流的底层需要一个低级流作为支撑。
高效字节流的api:
BufferedInputStream(高效输入流) / BufferedOutputStream(高效输出流)
高效流和普通流基本(完全)一样
高效流使用普通流作为构造函数的参数,在普通流的基础上增加了缓存区
高效write写出的时候,写出的位置是在缓存区,并不是目标资源
需要通过flush()方法将缓存区中的内容写出到目标资源中 - 目的是提高效率
方法:
void flush() - 刷新缓存区
void close() - 关闭流,关闭前调用flush方法
package Test21_Demo.Demo03;/*
@create 2020--12--11--11:11
*/
import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferedStreamDemo {
public static void main(String[] args) throws IOException {
//以高效字节输出流为例
//1.创建普通字节流
FileOutputStream fos = new FileOutputStream("test.txt");
//2.通过高效流使用普通流 - 将普通流作为参数传入高效流的构造函数
BufferedOutputStream bos = new BufferedOutputStream(fos);
//高效流处理数据
bos.write(97);
bos.write(new byte[]{100, 101, 102});
//刷新缓存区
bos.flush();
//关闭流 - 直接关闭高效流集合,普通流会随之关闭
bos.close();
}
}