缓冲流(高效流)

1.概念
    缓冲流:也叫高效流,对基本的流的一种增强

2.分类(数据类型)
    字节缓冲流:BufferedInputStream & BufferedOutputStream

    字符缓冲流:BufferedReader & BufferedWriter

3.缓冲流原理
    在创建流对象时,会创建一个内置的默认大小的缓冲数组,通过缓冲区读写,减少系统IO次数,从而提高效率

一.字节缓冲流

1.BufferedOutputStream

1)概念
    java.io.BufferedOutputStream  extends OutputStream
    java.io.BufferedOutputStream:字节缓冲输出流

2)构造方法
    BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
    BufferedOutputStream(OutputStream out, int size) 创建一个新的缓冲输出流,以便以指定的缓冲区大小将数据写入指定的底层输出流。
    参数:
        OutputStream out:字节输出流,可以传递FileOutputStream缓冲流会增加一个缓冲区,提高效率
        int size:指定缓冲流内部缓冲区大小,不指定默认大小

3)使用步骤:
            //1.创建FileOutputStream对象,构造方法中绑定输出目的地
            FileOutputStream fos = new FileOutputStream("G:\\a.txt");
            //2.创建BufferedOutputStream对象,构造方法传递FileOutputStream对象
            BufferedOutputStream bos = new BufferedOutputStream(fos);
            //3.使用BufferedOutputStream对象中的方法writer,把数据写入到内部缓冲区
            bos.write("写入数据到内部缓冲区".getBytes());
            //4.使用BufferedOutputStream对象中的方法flush,把内部缓冲区中的数据,刷新到文件中
            bos.flush();
            //5.释放资源(会调用flush方法)
            bos.close();

2.BufferedInputStream

1)概念
    ava.io.BufferedInputStream extends InputSrtream
    BufferedInputStream:高效字节输入流

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

3)使用步骤:类似

二.字符缓冲流

1.BufferedWriter

1)概念
    java.io.BufferedWriter  extends Writer
    BufferedWriter:字符缓冲输入流

2)构造方法
    BufferedWriter(Writer out) 创建使用默认大小的输出缓冲区的缓冲字符输出流。  
    BufferedWriter(Writer out, int sz) 创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。

3)特有的成员方法
    void newLine() 写一个行分隔符。(换行)

4)使用步骤:
    //1.创建字符缓冲输出流对象,构造方法中传递字符输出流
    BufferedWriter bw = new BufferedWriter(new FileWriter("G:\\a.txt"));
    //2.调用字符缓冲输出流对象中writer方法,把数据写入到内存缓冲区中
    bw.newLine();//换行
    bw.write("高效字符输出流");
    //3.调用对象中flush方法,把内存缓冲区中的数据,刷新到文件中
    bw.flush();
    //4.释放资源
    bw.close();

2.BufferedReader

1)概念
    java.io.BufferedReader extends Reader
    BufferedReader:高效字符输入流

2)构造方法
    BufferedReader(Reader in) 创建使用默认大小的输入缓冲区的缓冲字符输入流。  
    BufferedReader(Reader in, int sz) 创建使用指定大小的输入缓冲区的缓冲字符输入流。

3)特有成员方法
    String readLine() 读一行文字。 
      读一行文字:
          一行被视为由换行符('\ n'),回车符('\ r')中的任何一个或随后的换行符终止。 
      结果: 
          包含行的内容的字符串,不包括任何行终止字符,如果已达到流的末尾,则为null 

4)使用步骤:类似