java学习笔记(十四)——IO包装/处理流

文章目录

  • 缓冲流
  • 转换流
  • 打印流
  • 数据流
  • 序列化流
  • (了解)IO框架

缓冲流

  • 字节缓冲输入流: BufferedInputStream
  • 字节缓冲输出流:BufferedOutputStream
  • 字符缓冲输入流:BufferedReader
  • 字符缓冲输出流:BufferedWriter

好处:

  • 字节缓冲流自带8KB缓冲区
  • 可以提高原始字节流、字符流读写数据的性能
  • BufferedWriter提供了newLine()换行的功能
  • BufferedReader提供了readLine()逐行读取的功能

性能分析:
缓冲流+字节数组>缓冲流+单字节>原始流+字节数组>原始流+单字节
并非字节数组越大越好,数组越大,性能增长越慢

转换流

问题分析:

可以指定编码把原始字节流转换成字符流,如此字符流中的字符不乱码。

可以指定编码把字节输出流转换成字符输出流,从而可以指定写出去的字符编码!

打印流




PrintStream和PrintWriter的区别与联系:

  • 打印数据的功能上是一模一样的:都是使用方便,性能高效(核心优势)
  • PrintStream继承自字节输出流OutputStream,因此支持写字节数据的方法。
  • PrintWriter继承自字符输出流Writer,因此支持写字符数据出去。

(扩展)输出的重新定向:

数据流


数据流可以把基本数据类型也包括进去

序列化流


序列化流可以把对象也包括进去

  • 对象如果要实现序列化,必须实现序列化接口(Serializable)
  • 如果要实现一次序列化多个对象,用ArrayList集合即可

(了解)IO框架