缓冲流

Posted xiaozhu1017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓冲流相关的知识,希望对你有一定的参考价值。

1、缓冲流

(1)缓冲流,也叫高效流,是对4个基本的FileXXX流的增强,按照类型分类:字节缓冲流:BufferedInputStream, BufferOutputStream;字符缓冲流:BufferedReader, BufferedWriter

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

(3)BufferedOutputStream字节缓冲输出流,继承OutputStream,包含继承自父类的共性成员方法:

    1public void close();关闭此输出流,并释放与此流相关的系统资源;

    2public void flush();刷新此输出流,并强制任何缓冲的输出字节被写出;

    3public void write(byte[] b);b.length字节从指定的字节数组写入此输出流;

    4public void write(byte[] b, int off, int len);从指定的字节数组写入len字节,开始索引是off

    5public void write(int b);写入指定的字节;

 构造方法:1BufferedOutputStream(OutputStream out);参数是字节缓冲流,可以是FileOutputStream,给文件字节输出流增加一个缓冲区(缓冲区的大小为默认值),提高FileOutputStream的写入效率;

     2BufferOutputStream(OutputStream out, int size);int size:指定缓冲流内部缓冲区的大小;

(4)使用步骤:1》创建FileOutputStream对象,构造方法中绑定要输出的目的地;

       2》创建BufferOutputStream对象,构造方法中传递FileOutputStream对象,提高FileOutputStream对象的效率;

       3》使用BufferOutputStream对象的write方法,把数据写入到内部缓冲区;

       4》使用BufferOutputStream对象的flush方法,把内部缓冲区中的数据,刷新到文件中;

       5》释放资源(会先调用flush方法刷新数据,第4步可省略);【字符缓冲输出流类似,但其有一个特有方法void newLine();写入一个行分隔符,即换行】

(5)BufferInputStream字节缓冲输入流,继承InputStream,继承自父类的成员方法:

    1void read();从输入流中读取数据的下一个字节;

    2void read(byte[] b);从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中;

    3void close();关闭此输入流,并释放与该流相关的系统资源;  

  构造方法:1BufferedInputStream(InputStream in);InputStream in:字节输入流,可以是FileInputStream,缓冲流会给FileInputStream增加一个缓冲区,提高其读取效率;

       2BufferedInputStream(InputStream in, int size);int size:指定缓冲流内部缓冲区的大小;

(6)使用步骤:1》创建FileInputStream对象,构造方法中绑定要读取的数据源;

       2》创建BufferedInputStream对象,构造方法中传递FileInputStream对象,提高其读取效率;

       3》使用BufferedInputStream对象的read方法,读取数据;

       4》释放资源(只关闭缓冲流即可,关闭缓冲流会自动把基本流关闭);

  【字符缓冲输入流类似,其由一个特有方法,String readLine();读取一个文本行,即读取一行数据,返回值包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回null

以上是关于缓冲流的主要内容,如果未能解决你的问题,请参考以下文章

缓冲流

缓冲流之字节缓冲流

java 缓冲流

java字节缓冲流和字符缓冲流

IO流之缓冲流

Java之缓冲流(字节/字符缓冲流)