java学习笔记(十四)——IO包装/处理流
文章目录
- 缓冲流
- 转换流
- 打印流
- 数据流
- 序列化流
- (了解)IO框架
缓冲流
- 字节缓冲输入流: BufferedInputStream
- 字节缓冲输出流:BufferedOutputStream
- 字符缓冲输入流:BufferedReader
- 字符缓冲输出流:BufferedWriter
好处:
- 字节缓冲流自带8KB缓冲区
- 可以提高原始字节流、字符流读写数据的性能
- BufferedWriter提供了newLine()换行的功能
- BufferedReader提供了readLine()逐行读取的功能
性能分析:
缓冲流+字节数组>缓冲流+单字节>原始流+字节数组>原始流+单字节
并非字节数组越大越好,数组越大,性能增长越慢
转换流
问题分析:
可以指定编码把原始字节流转换成字符流,如此字符流中的字符不乱码。
可以指定编码把字节输出流转换成字符输出流,从而可以指定写出去的字符编码!
打印流
PrintStream和PrintWriter的区别与联系:
- 打印数据的功能上是一模一样的:都是使用方便,性能高效(核心优势)
- PrintStream继承自字节输出流OutputStream,因此支持写字节数据的方法。
- PrintWriter继承自字符输出流Writer,因此支持写字符数据出去。
(扩展)输出的重新定向:
数据流
数据流可以把基本数据类型也包括进去
序列化流
序列化流可以把对象也包括进去
- 对象如果要实现序列化,必须实现序列化接口(Serializable)
- 如果要实现一次序列化多个对象,用ArrayList集合即可