高效流 - 高级流
    原理:缓存区临时存放多个数据,一次性调用底层的资源,减少调用的次数,从而提升程序运行的效率
    所以在高级流的底层需要一个低级流作为支撑。

    高效字节流的api:
    BufferedInputStream(高效输入流) / BufferedOutputStream(高效输出流)

    高效流和普通流基本(完全)一样
    高效流使用普通流作为构造函数的参数,在普通流的基础上增加了缓存区

    高效write写出的时候,写出的位置是在缓存区,并不是目标资源
    需要通过flush()方法将缓存区中的内容写出到目标资源中 - 目的是提高效率

    方法:
    void flush() - 刷新缓存区
    void close() - 关闭流,关闭前调用flush方法

    1. package Test21_Demo.Demo03;/*
    2. @create 2020--12--11--11:11
    3. */
    4. import java.io.BufferedOutputStream;
    5. import java.io.FileNotFoundException;
    6. import java.io.FileOutputStream;
    7. import java.io.IOException;
    8. public class BufferedStreamDemo {
    9. public static void main(String[] args) throws IOException {
    10. //以高效字节输出流为例
    11. //1.创建普通字节流
    12. FileOutputStream fos = new FileOutputStream("test.txt");
    13. //2.通过高效流使用普通流 - 将普通流作为参数传入高效流的构造函数
    14. BufferedOutputStream bos = new BufferedOutputStream(fos);
    15. //高效流处理数据
    16. bos.write(97);
    17. bos.write(new byte[]{100, 101, 102});
    18. //刷新缓存区
    19. bos.flush();
    20. //关闭流 - 直接关闭高效流集合,普通流会随之关闭
    21. bos.close();
    22. }
    23. }