Java.io.ObjectInputStream 类

简介

Java.io.ObjectInputStream 类反序列化以前使用 ObjectOutputStream 编写的原始数据和对象。 以下是有关 BufferedInputStream 的要点 −

  • 它用于恢复以前序列化的那些对象。 它确保从流创建的图中所有对象的类型与 Java 虚拟机中存在的类相匹配。

  • 使用标准机制根据需要加载类。


类声明

以下是 Java.io.ObjectInputStream 类的声明 −

public class ObjectInputStream
   extends InputStream
      implements ObjectInput, ObjectStreamConstants

类构造函数

序号 构造函数 & 描述
1

protected ObjectInputStream()

这为完全重新实现 ObjectInputStream 的子类提供了一种方法,而不必分配仅由 ObjectInputStream 的此实现使用的私有数据。

2

ObjectInputStream(InputStream in)

这将创建一个从指定 InputStream 读取的 ObjectInputStream。


类方法

序号 方法 & 描述
1 int available()

该方法返回不阻塞可以读取的字节数。

2 void close()

此方法关闭输入流。

3 void defaultReadObject()

该方法从此流中读取当前类的非静态和非瞬态字段。

4 protected boolean enableResolveObject(boolean enable)

此方法使流允许替换从流中读取的对象。

5 int read()

该方法读取一个字节的数据。

6 int read(byte[] buf, int off, int len)

这个方法读入一个字节数组。

7 boolean readBoolean()

此方法读取一个布尔值。

8 byte readByte()

此方法读取一个 8 位字节。

9 char readChar()

此方法是 16 位字符。

10 protected ObjectStreamClass readClassDescriptor()

此方法从序列化流中读取类描述符。

11 double readDouble()

此方法读取 64 位双精度。

12 ObjectInputStream.GetField readFields()

此方法从流中读取持久字段并通过名称使它们可用。

13 float readFloat()

此方法读取 32 位浮点数。

14 void readFully(byte[] buf)

此方法读取字节,阻塞直到读取所有字节。

15 void readFully(byte[] buf, int off, int len)

此方法读取字节,阻塞直到读取所有字节。

16 int readInt()

此方法读取 32 位 int。

17 long readLong()

此方法读取 64 位 long。

18 对象readObject()

此方法从 ObjectInputStream 中读取一个对象。

19 protected Object readObjectOverride()

此方法由使用受保护的无参数构造函数构造 ObjectOutputStream 的 ObjectOutputStream 的受信任子类调用。

20 短读短()

此方法读取 16 位 short。

21 protected void readStreamHeader()

提供此方法是为了允许子类读取和验证自己的流标头。

22 对象 readUnshared()

此方法从 ObjectInputStream 中读取一个"unshared"对象。

23 int readUnsignedByte()

此方法读取一个无符号的 8 位字节。

24 int readUnsignedShort()

此方法读取无符号 16 位 short。

25 String readUTF()

此方法读取修改后的 UTF-8 格式的字符串。

26 void registerValidation(ObjectInputValidation obj, int prio)

此方法在返回图形之前注册一个要验证的对象。

27 protected Class<?> resolveClass(ObjectStreamClass desc)

此方法加载与指定流类描述等效的本地类。

28 protected Object resolveObject(Object obj)

此方法将允许 ObjectInputStream 的受信任子类在反序列化期间用一个对象替换另一个对象。

29 protected Class<?> resolveProxyClass(String[] interfaces)

该方法返回一个代理类,该类实现代理类描述符中命名的接口; 子类可以实现此方法以从流中读取自定义数据以及动态代理类的描述符,从而允许它们为接口和代理类使用备用加载机制。

30 int skipBytes(int len)

此方法跳过字节。


继承的方法

这个类继承了以下类的方法 −

  • Java.io.InputStream
  • Java.io.Object
  • Java.io.ObjectInput