比起字节流字符流更为强大
缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类:
字节缓冲流: BufferedInputStream , BufferedOutputStream
字符缓冲流: BufferedReader , BufferedWriter

字节缓冲流

public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流。
public BufferedOutputStream(OutputStream out) : 创建一个新的缓冲输出流。
image.png

字符缓冲流

public BufferedReader(Reader in) :创建一个 新的缓冲输入流。
public BufferedWriter(Writer out) : 创建一个新的缓冲输出流。

转换流

image.png
InputStreamReader类
image.png
image.png
image.png

序列化

一个对象要想序列化,必须满足两个条件:

  • 该类必须实现 java.io.Serializable 接口, Serializable 是一个标记接口,不实现此接口的类将不会使任何状态序列化或反序列化,会抛出 NotSerializableException 。
  • 该类的所有属性必须是可序列化的。如果有一个属性不需要可序列化的,则该属性必须注明是瞬态的,使用transient 关键字修饰。

image.png
image.png
4种创建对象的方法:
使用 new 关键字调用对象的构造器;
使用 Java 反射的 newInstance() 方法;
使用 Object 类的 clone() 方法;
使用对象流 ObjectInputStream的readObject()方法读取序列化对象;

反序列化操作

image.png
image.png

打印流

public PrintStream(String fileName) : 使用指定的文件名创建一个新的打印流
image.png