字符缓冲流

- 原理:底层自带了长度为8192字符数组(16kb的缓冲区提高性能
- 原来的基本字符流就自带缓冲区,所以字符缓冲流提升的性能并不是分很明显,对于字符缓冲流而言关键点是两个特有方法
构造方法
| 方法名称 | 说明 |
|---|
| public BufferedReader(Reader r) | 把基本流变成高级流 |
| public BufferedWriter(Writer r) | 把基本流变成高级流 |
- 续写开关要写到基本流中,因为真正在工作的是基本流
- 底层代码
private static int defaultCharBufferSize = 8192;
public BufferedReader(Reader in) {
this(in, defaultCharBufferSize)
}
public BufferedReader(Reader in, int sz) {
super(in);
if (sz <= 0 )
thorw new IllegalArgumentException("Buffer size <= 0");
this.in = in;
cb = new char[sz];
nextChar = nChars = 0;
特有方法
| 字符缓冲输入流特有方法 | 说明 |
|---|
| public String readLine() | 读取一行数据,如果没有数据可读了,会返回null |
- readLine方法在读取的时候,一次读一行,遇到回车换行结束,但是并不会把回车换行读到内存中
| 字符缓冲输出流特有方法 | 说明 |
|---|
| public void newLine() | 跨平台的换行 |
使用
BUfferedRead br = new BufferedReader(new FileReader());
BUfferedWriter bw = new BufferedWriter(new FileWriter());
String s;
while((s = br.redLine()) != null) {
bw.write(s);
bw.newLine(s);
}
bw.close();
br.close();