缓冲流也叫高效流,是对4个基本的FIleXXX流的增强
字节缓冲流:BufferedInputStream、BufferedOutputStream
字符缓冲流:BufferedReader、BufferedWriter
原理:创建流对象时,会创建一个内置默认大小的缓冲区数组,减少IO次数从而提高效率。
一、字节缓冲流
构造方法
public BufferedInputStream(InputStream in);
public BufferedOutputStream(OutputStream out);
1.1BufferedOutputStream
![](https://img.haomeiwen.com/i14355128/ef2e224ea6a0ef5e.png)
demo:简单使用
![](https://img.haomeiwen.com/i14355128/2284fa5f33c2c6b7.png)
1.2BufferedInputStream
![](https://img.haomeiwen.com/i14355128/3c92403dcd2ff06c.png)
demo:简单使用
![](https://img.haomeiwen.com/i14355128/ed57368eabc0ac15.png)
二、字符缓冲流
构造方法
public BufferedReader(Reader in);
public BufferedWriter(Writer out);
2.1BufferedWriter
特有的方法:void newLine();会根据操作系统获取不同的行分隔符
![](https://img.haomeiwen.com/i14355128/3f82d62d569a5d10.png)
demo:简单使用
![](https://img.haomeiwen.com/i14355128/6bd1ee0118f6310a.png)
2.2BufferedReader
特有的方法:String readLine();读一行(\n、\r、\r\n),读到末尾返回null!!!
![](https://img.haomeiwen.com/i14355128/c0a02aa95023603b.png)
demo:简单使用
![](https://img.haomeiwen.com/i14355128/0a98bc47ae8d2a35.png)
三、转换流
![](https://img.haomeiwen.com/i14355128/58b4049f4ed71edb.png)
编码引出的问题
Windows使用的默认字符集为GBK;IDE默认格式为UTF-8编码
所以fileReader读取GBK文本会出问题
3.1OutputStreamReader
可以使用指定的charset将要写入流的字符编码成字节
![](https://img.haomeiwen.com/i14355128/ecb4365ec4f10c86.png)
demo:简单使用
![](https://img.haomeiwen.com/i14355128/9edd1d20aac52f6d.png)
3.2InputStreamReader
可以使用指定的charset读取字节并将其解码为字符
![](https://img.haomeiwen.com/i14355128/b1ef8ee55fda31e6.png)
demo:简单使用
![](https://img.haomeiwen.com/i14355128/654dde3cdc182880.png)
网友评论