Java ObjectInputStream
精华
小牛编辑
113浏览
2023-03-14
1 什么是Java ObjectInputStream
java.io.ObjectInputStream类反序列化的原始数据和以前写的对象使用一个ObjectOutputStream。
以下是关于缓冲输入流的要点:
-
它是用来恢复先前序列化的对象。它确保所有对象的图形中从流中创建的类型匹配存在于Java虚拟机的类。
-
类加载使用标准的机制,作为必需的。
2 Java ObjectInputStream的语法
public class ObjectInputStream
extends InputStream
implements ObjectInput, ObjectStreamConstants
3 Java ObjectInputStream构造方法
构造方法 | 描述 |
---|---|
protected ObjectInputStream() | 这为完全重新实现ObjectInputStream的子类提供了不必分配仅由ObjectInputStream的此实现使用的私有数据的方式。 |
ObjectInputStream(InputStream in) | 这将创建一个ObjectInputStream,它从指定的InputStream中读取。 |
4 Java ObjectInputStream方法
方法 | 描述 |
---|---|
int available() | 此方法返回不阻塞即可读取的字节数。 |
void close() | 此方法关闭输入流。 |
void defaultReadObject() | 此方法从该流中读取当前类的非静态和非瞬态字段。 |
protected boolean enableResolveObject(boolean enable) | 此方法使流允许替换从流读取的对象。 |
int read() | 此方法读取一个字节的数据。 |
int read(byte[] buf, int off, int len) | 此方法读入字节数组。 |
boolean readBoolean() | 该方法读取一个布尔值。 |
byte readByte() | 此方法读取一个8位字节。 |
char readChar() | 此方法为16位字符。 |
protected ObjectStreamClass readClassDescriptor() | 此方法从序列化流中读取类描述符。 |
double readDouble() | 此方法读取64位double。 |
ObjectInputStream.GetField readFields() | 此方法从流中读取持久字段,并使它们按名称可用。 |
float readFloat() | 此方法读取32位浮点数。 |
void readFully(byte[] buf) | 此方法读取字节,阻塞直到读取所有字节。 |
void readFully(byte[] buf, int off, int len) | 此方法读取字节,阻塞直到读取所有字节。 |
int readInt() | 此方法读取一个32位int。 |
long readLong() | 此方法读取64位long。 |
Object readObject() | 此方法从ObjectInputStream读取一个对象。 |
protected Object readObjectOverride() | 由使用受保护的无参数构造函数构造ObjectOutputStream的ObjectOutputStream的受信任子类调用此方法。 |
short readShort() | 此方法读取一个16位的short。 |
protected void readStreamHeader() | 提供此方法是为了允许子类读取和验证自己的流头。 |
Object readUnshared() | 此方法从ObjectInputStream读取“非共享”对象。 |
int readUnsignedByte() | 此方法读取一个无符号的8位字节。 |
int readUnsignedShort() | 此方法读取一个无符号的16位short。 |
String readUTF() | 此方法读取修改后的UTF-8格式的String。 |
void registerValidation(ObjectInputValidation obj, int prio) | 此方法在返回图形之前注册要验证的对象。 |
protected Class<?> resolveClass(ObjectStreamClass desc) | 方法加载与指定的流类描述等效的本地类。 |
protected Class<?> resolveProxyClass(String[] interfaces) | 该方法返回一个代理类,该类实现实现在代理类描述符中命名的接口。子类可以实现此方法以从流中读取自定义数据以及动态代理类的描述符,从而允许它们为接口和代理类使用备用加载机制。 |
int skipBytes(int len) | 此方法跳过字节。 |