1,字节缓冲流的API:

image.png

2,使用范例:

  1. //利用字节数组进行复制:
  2. public class Text01 {
  3. public static void main(String[] args) throws IOException {
  4. //输入:
  5. BufferedInputStream bis = new BufferedInputStream(new FileInputStream("G:\\xxx.png"));
  6. //输出:
  7. BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("G:\\xxx\\xxx(2).png"));
  8. byte[] buf = new byte[1024 * 8];
  9. int b;
  10. while ((b = bis.read(buf)) != -1) {
  11. bos.write(buf,0,b);
  12. }
  13. bos.close();
  14. bis.close();
  15. }
  16. }

3,字节缓冲流的效率秘密:

  1. 因为缓冲流里面的缓冲区其实有一个数组(1024 * 8),当读取一个字节的时候,会将读取的多个字节存到缓冲区中,直到缓冲区已满再进行写入;
  2. 当读取多个字节的时候就不一样了,要先把已读取的数组放到输入缓冲区,再复制到我们自己的数组,再复制到输出缓冲区再进行写入;因此,读取多个字节的时候,会比基本流读取多个字节慢一点点;

    4,字节缓冲流的好处及场景:

    image.png