[进阶]Java:缓冲流分类,字节缓冲流使用

缓冲流概述

  • 缓冲流也成为高效流、或者高级流。之前学习的字节流可以称之为原始流。
  • 作用:缓冲流自带缓冲区、可以提高原始字节流、字符流读写数据的性能

[进阶]Java:缓冲流分类,字节缓冲流使用_第1张图片 

 

 

问:缓冲流有几种?

  • 字节缓冲流
  1. 字节缓冲输入流:BufferedInpuStream
  2. 字节缓冲输出流:BufferedOutputStream
  • 字符缓冲流
  1. 字符缓冲输入流:BufferedReader
  2. 字符缓冲输出流:BufferedWriter

字节缓冲流性能优化原理:

  • 字节缓冲输入流自带了8KB缓冲池,以后我们直接从缓冲池读取数据,所以性能较好。
  • 字节缓冲输出流自带了8KB缓冲池,数据就直接写入到缓冲池中去,写数据性能提高了。

代码演示如下:

public class ByteBufferDemo {
    public static void main(String[] args) {
        //1.创建一个字节输出流管道与原文件接通
        try (
                //1.创建一个字节输入流管道与原文件接通
                InputStream is = new FileInputStream("H:\\A桌面\\mac.jpg");
                //a.把原始的字节输入流包装成高级的缓冲字节输入流
                InputStream bis = new BufferedInputStream(is);
                //1.创建一个字节输出流管道与原文件接通
                OutputStream os = new FileOutputStream("H:\\A桌面\\mac111.jpg");
                //b.把原始的字节输出流包装成高级的缓冲字节输出流管道
                OutputStream bos = new BufferedOutputStream(os);
        ) {
            //3.定义一个字节数组转移数据
            byte[] buffer = new byte[1024];
            int len;// 记录每次读取的字节数
            while ((len = bis.read(buffer)) !=-1){
                bos.write(buffer,0,len);
            }
            System.out.println("复制完成了~");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:([进阶]Java:IO二,java,开发语言)