前言
上一篇IO流就介绍了File和基本流,这节介绍好用的高级流。
还有IO流的心得:随用随创建,什么时候不用什么时候关闭
目录
一、缓冲流
缓冲流顾名思义就是要多一个缓冲,加快数据的传输速度。但是相对字符流本身就有缓冲区的来说,字节流得到的增益比较多。
1.体系图
2.字节缓冲流
原理:底层自带了长度为8192的缓冲区提高性能
(1)用法
1.创建基本字节流对象
2.把基本字节流包装成字节缓冲流
3.读写数据
4.关闭流
1.包装基本字节流
2.读写数据
缓冲流的读写方法和基本流的一样,write和read系列方法。
3.释放资源
关闭流还是用close()方法,这里只需要关闭相关的高级流,高级流所包装的基本流在底层是有关闭的,不用写包装的基本流的关闭。
(2)底层原理
比较字节基本流效率提高的原理
包装基本流创建缓冲流,传递一个8192作为缓冲区大小,即字节数组的长度
创建一个长度8192的字节数组,作为缓冲区
每次写数据,将数据编码后的字节写到缓冲数组
刷新缓冲区(基本字节流的刷新方法是空方法,因为没有缓冲区)
刷新缓冲区其实就是调用基本字节流的write将数据写到文件
3.字符缓冲流
(1)用法
字符缓冲流的用法和字节缓冲流的用法一样,都是4步
1.创建基本字符流对象
2.把基本字符流包装成字符缓冲流
3.读写数据
4.关闭流
1.将基本流包装成高级流
原理也是底层自带了长度为8192的缓冲区提高性能
2.字符缓冲流特有的方法
细节:readLine方法在读取的时候,一次读一整行,遇到回车换行结束