缓冲流
Posted xiaozhu1017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓冲流相关的知识,希望对你有一定的参考价值。
1、缓冲流
(1)缓冲流,也叫高效流,是对4个基本的FileXXX流的增强,按照类型分类:字节缓冲流:BufferedInputStream, BufferOutputStream;字符缓冲流:BufferedReader, BufferedWriter;
(2)缓冲流的原理:在创建流对象时,创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率;
(3)BufferedOutputStream字节缓冲输出流,继承OutputStream,包含继承自父类的共性成员方法:
1》public void close();关闭此输出流,并释放与此流相关的系统资源;
2》public void flush();刷新此输出流,并强制任何缓冲的输出字节被写出;
3》public void write(byte[] b);将b.length字节从指定的字节数组写入此输出流;
4》public void write(byte[] b, int off, int len);从指定的字节数组写入len字节,开始索引是off;
5》public void write(int b);写入指定的字节;
构造方法:1》BufferedOutputStream(OutputStream out);参数是字节缓冲流,可以是FileOutputStream,给文件字节输出流增加一个缓冲区(缓冲区的大小为默认值),提高FileOutputStream的写入效率;
2》BufferOutputStream(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,继承自父类的成员方法:
1》void read();从输入流中读取数据的下一个字节;
2》void read(byte[] b);从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中;
3》void close();关闭此输入流,并释放与该流相关的系统资源;
构造方法:1》BufferedInputStream(InputStream in);InputStream in:字节输入流,可以是FileInputStream,缓冲流会给FileInputStream增加一个缓冲区,提高其读取效率;
2》BufferedInputStream(InputStream in, int size);int size:指定缓冲流内部缓冲区的大小;
(6)使用步骤:1》创建FileInputStream对象,构造方法中绑定要读取的数据源;
2》创建BufferedInputStream对象,构造方法中传递FileInputStream对象,提高其读取效率;
3》使用BufferedInputStream对象的read方法,读取数据;
4》释放资源(只关闭缓冲流即可,关闭缓冲流会自动把基本流关闭);
【字符缓冲输入流类似,其由一个特有方法,String readLine();读取一个文本行,即读取一行数据,返回值包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回null】
以上是关于缓冲流的主要内容,如果未能解决你的问题,请参考以下文章