对象输出流 ObjectOutputStream java
构造方法
protected ObjectOutputStream()
为完全重新实现 ObjectOutputStream 的子类提供一种方法,让它不必分配仅由 ObjectOutputStream 的实现使用的私有数据。
ObjectOutputStream(OutputStream out)
创建写入指定 OutputStream 的 ObjectOutputStream。
方法摘要
protected void annotateClass(Class<?> cl)
子类可以实现此方法,从而允许在流中存储类数据。
protected void annotateProxyClass(Class<?> cl)
子类可以实现此方法,从而在流中存储定制数据和动态代理类的描述符。
void close()
关闭流。
void defaultWriteObject()
将当前类的非静态和非瞬态字段写入此流。
protected void drain()
排空 ObjectOutputStream 中的所有已缓冲数据。
protected boolean enableReplaceObject(boolean enable)
允许流对流中的对象进行替换。
void flush()
刷新该流的缓冲。
ObjectOutputStream.PutField putFields()
获取用于缓冲写入流中的持久存储字段的对象。
protected Object replaceObject(Object obj)
在序列化期间,此方法允许 ObjectOutputStream 的受信任子类使用一个对象替代另一个对象。
void reset()
重置将丢弃已写入流中的所有对象的状态。
void useProtocolVersion(int version)
指定要在写入流时使用的流协议版本。
void write(byte[] buf)
写入一个 byte 数组。
void write(byte[] buf, int off, int len)
写入字节的子数组。
void write(int val)
写入一个字节。
void writeBoolean(boolean val)
写入一个 boolean 值。
void writeByte(int val)
写入一个 8 位字节。
void writeBytes(String str)
以字节序列形式写入一个 String。
void writeChar(int val)
写入一个 16 位的 char 值。
void writeChars(String str)
以 char 序列形式写入一个 String。
protected void writeClassDescriptor(ObjectStreamClass desc)
将指定的类描述符写入 ObjectOutputStream。
void writeDouble(double val)
写入一个 64 位的 double 值。
void writeFields()
将已缓冲的字段写入流中。
void writeFloat(float val)
写入一个 32 位的 float 值。
void writeInt(int val)
写入一个 32 位的 int 值。
void writeLong(long val)
写入一个 64 位的 long 值。
void writeObject(Object obj)
将指定的对象写入 ObjectOutputStream。
protected void writeObjectOverride(Object obj)
子类用于重写默认 writeObject 方法的方法。
void writeShort(int val)
写入一个 16 位的 short 值。
protected void writeStreamHeader()
提供 writeStreamHeader 方法,这样子类可以将其自身的头部添加或预加到流中。
void writeUnshared(Object obj)
将“未共享”对象写入 ObjectOutputStream。
void writeUTF(String str)
以 UTF-8 修改版格式写入此 String 的基本数据。
功能演练
ObjectOutputStream的功能是把对象存放到文件中
假设我们要把一个学生对象保存到文件中
首先会要求这个学生对象有特别的设置
定义一个学生对象 用于演示
学生对象将要保存到文件中
学生类一定要实现序列化
接口
创建对象输出流的对象
存入数据
把学生对象存入数据中