java之IO篇高级流——缓冲流、转化流、序列化流、打印流、压缩流

前言

上一篇IO流就介绍了File和基本流,这节介绍好用的高级流。

还有IO流的心得:随用随创建,什么时候不用什么时候关闭

目录

前言

一、缓冲流

1.体系图

 2.字节缓冲流

(1)用法

(2)底层原理

3.字符缓冲流

(1)用法

二、转换流 

1.作用

2.示例

三、序列化流和反序列化流

1.序列化流ObjectOutputStream

2.反序列化流ObjectInputStream 

3.关键细节

四、打印流 

1.字节打印流PrintStream

2.字符打印流PrintWriter

3.和标准输出流的关系

 五、压缩流和解压缩流

1.解压缩流ZipInputStream

 2.压缩流ZipOutputStream

(1).压缩单个文件

 (2).压缩文件夹


 

一、缓冲流

缓冲流顾名思义就是要多一个缓冲,加快数据的传输速度。但是相对字符流本身就有缓冲区的来说,字节流得到的增益比较多。

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方法在读取的时候,一次读一整行,遇到回车换行结束

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值