ObjectStreamConstants public interface ObjectStreamConstants 写入对象序列化流的常量。 Since: JDK 1.1 字段摘要 修饰符和类型 字段 描述 static int baseWireHandle 要分配的第一个导线句柄。 static int PROTOCOL_VERSION_1 流协议版本。 static int PROTOCOL_VERSION_2 流协议版本。 static byte SC_BLOCK_DATA ObjectStreamClass 标志的位掩码。 static byte SC_ENUM ObjectStreamClass 标志的位掩码。 static byte SC_EXTERNALIZABLE ObjectStreamClass 标志的位掩码。 static byte SC_SERIALIZABLE ObjectStreamClass 标志的位掩码。 static byte SC_WRITE_METHOD ObjectStreamClass 标志的位掩码。 static short STREAM_MAGIC 写入流标头的幻数。 static short STREAM_VERSION 写入流标头的版本号。 static SerializablePermission SUBCLASS_IMPLEMENTATION_PERMISSION 启用 readObject 和 writeObject 的覆盖。 static SerializablePermission SUBSTITUTION_PERMISSION 在序列化/反序列化期间启用一个对象替换另一个对象。 static byte TC_ARRAY 新数组。 static byte TC_BASE 第一个标签值。 static byte TC_BLOCKDATA 可选数据块。 static byte TC_BLOCKDATALONG 长块数据。 static byte TC_CLASS 参考类。 static byte TC_CLASSDESC 新的类描述符。 static byte TC_ENDBLOCKDATA 对象的可选块数据块的结尾。 static byte TC_ENUM 新的枚举常量。 static byte TC_EXCEPTION 写入期间出现异常。 static byte TC_LONGSTRING 长串。 static byte TC_MAX 最后一个标签值。 static byte TC_NULL 空对象引用。 static byte TC_OBJECT 新对象。 static byte TC_PROXYCLASSDESC 新的代理类描述符。 static byte TC_REFERENCE 对已写入流的对象的引用。 static byte TC_RESET 重置流上下文。 static byte TC_STRING 新字符串。 字段详细信息 PROTOCOL_VERSION_1 static final int PROTOCOL_VERSION_1 流协议版本。 调用此方法后,所有可外部化的数据都以 JDK 1.1 的外部数据格式写入。 需要此版本来编写包含可被 JDK 1.1.6 之前的 JVM 读取的 Externalizable 数据的流。 Since: 1.2...
ObjectOutput public interface ObjectOutput extends DataOutput, AutoCloseable ObjectOutput 扩展了 DataOutput 接口以包括对象的写入。 DataOutput 包括用于输出原始类型的方法,ObjectOutput 扩展了该接口以包括对象、数组和字符串。 Since: JDK1.1 方法总结 修饰符和类型 方法 描述 void close() 关闭流。 void flush() 冲洗流。 void write(byte[] b) 写入一个字节数组。 void write(byte[] b, int off, int len) 写入一个子字节数组。 void write(int b) 写入一个字节。 void writeObject(Object obj) 将对象写入底层存储或流。 从接口 java.io.DataOutput 继承的方法 writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFloat, writeInt, writeLong, writeShort, writeUTF 方法详情 writeObject void writeObject(Object obj) throws IOException 将对象写入底层存储或流。 实现此接口的类定义了对象的编写方式。 参数: 参数名称 参数描述 obj 要写入的对象 Throws: Throw名称 Throw描述 IOException 任何常见的输入/输出相关异常。 write void write(int b) throws IOException 写入一个字节。 此方法将阻塞,直到实际写入字节。 指定者: 写入接口DataOutput 参数: 参数名称 参数描述 b 字节 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 write void write(byte[] b) throws IOException 写入一个字节数组。 此方法将阻塞,直到实际写入字节。 指定者: 写入接口DataOutput 参数: 参数名称 参数描述 b 要写入的数据 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 write void write(byte[] b, int off, int len) throws IOException 写入一个子字节数组。 指定者: 写入接口DataOutput 参数: 参数名称 参数描述 b 要写入的数据 off...
ObjectInputValidation public interface ObjectInputValidation 回调接口以允许验证图中的对象。 允许在反序列化完整的对象图时调用对象。 Since: JDK1.1 方法总结 修饰符和类型 方法 描述 void validateObject() 验证对象。 方法详情 validateObject void validateObject() throws InvalidObjectException 验证对象。 Throws: Throw名称 Throw描述 InvalidObjectException 如果对象无法验证自己。
ObjectInput public interface ObjectInput extends DataInput, AutoCloseable ObjectInput 扩展了 DataInput 接口以包括对象的读取。 DataInput 包括用于输入原始类型的方法,ObjectInput 扩展了该接口以包括对象、数组和字符串。 Since: JDK1.1 方法总结 修饰符和类型 方法 描述 int available() 返回可以在不阻塞的情况下读取的字节数。 void close() 关闭输入流。 int read() 读取一个字节的数据。 int read(byte[] b) 读入一个字节数组。 int read(byte[] b, int off, int len) 读入一个字节数组。 Object readObject() 读取并返回一个对象。 long skip(long n) 跳过 n 个字节的输入。 从接口 java.io.DataInput 继承的方法 readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, skipBytes 方法详情 readObject Object readObject() throws ClassNotFoundException, IOException 读取并返回一个对象。 实现此接口的类定义了从何处“读取”对象。 返回: 从流中读取的对象 Throws: Throw名称 Throw描述 ClassNotFoundException 如果找不到序列化对象的类。 IOException 如果发生任何常见的输入/输出相关异常。 read int read() throws IOException 读取一个字节的数据。 如果没有可用的输入,此方法将阻塞。 返回: 读取的字节,如果到达流的末尾,则为 -1。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 read int read(byte[] b) throws IOException 读入一个字节数组。 此方法将阻塞,直到某些输入可用。 参数: 参数名称 参数描述 b 读取数据的缓冲区 返回: 实际读取的字节数,到达流末尾时返回-1。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 read int read(byte[] b, int off, int len) throws IOException 读入一个字节数组。 此方法将阻塞,直到某些输入可用。 参数: 参数名称 参数描述 b 读取数据的缓冲区 off 数据的起始偏移量 len 读取的最大字节数 返回:...
Flushable public interface Flushable Flushable 是可以刷新的数据的目的地。 调用 flush 方法将任何缓冲的输出写入底层流。 Since: 1.5 方法总结 修饰符和类型 方法 描述 void flush() 通过将任何缓冲输出写入底层流来刷新此流。 方法详情 flush void flush() throws IOException 通过将任何缓冲输出写入底层流来刷新此流。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误
FilenameFilter @FunctionalInterface public interface FilenameFilter 实现此接口的类的实例用于过滤文件名。 这些实例用于过滤类 File 的 list 方法中的目录列表,并由 Abstract Window Toolkit 的文件对话框组件。 Since: JDK1.0 方法总结 修饰符和类型 方法 描述 boolean accept(File dir, String name) 测试指定文件是否应包含在文件列表中。 方法详情 accept boolean accept(File dir, String name) 测试指定文件是否应包含在文件列表中。 参数: 参数名称 参数描述 dir 找到文件的目录。 name 文件的名称。 返回: 当且仅当名称应包含在文件列表中时为 true; 否则为 false。
FileFilter @FunctionalInterface public interface FileFilter 抽象路径名的过滤器。 此接口的实例可以传递给 File 类的 File#listFiles(java.io.FileFilter) 方法。 Since: 1.2 方法总结 修饰符和类型 方法 描述 boolean accept(File pathname) 测试指定的抽象路径名是否应包含在路径名列表中。 方法详情 accept boolean accept(File pathname) 测试指定的抽象路径名是否应包含在路径名列表中。 参数: 参数名称 参数描述 pathname 要测试的抽象路径名 返回: 当且仅当应该包含路径名时才为 true
Externalizable public interface Externalizable extends Serializable 只有 Externalizable 实例的类的标识被写入序列化流中,并且类有责任保存和恢复其实例的内容。 Externalizable 接口的 writeExternal 和 readExternal 方法由一个类实现,以使该类可以完全控制对象及其超类型的流的格式和内容。这些方法必须显式地与超类型协调以保存其状态。这些方法取代了 writeObject 和 readObject 方法的自定义实现。对象序列化使用 Serializable 和 Externalizable 接口。对象持久性机制也可以使用它们。每个要存储的对象都针对 Externalizable 接口进行了测试。如果对象支持 Externalizable,则调用 writeExternal 方法。如果对象不支持 Externalizable 并且实现了 Serializable,则使用 ObjectOutputStream 保存对象。重构 Externalizable 对象时,会使用公共无参数构造函数创建实例,然后调用 readExternal 方法。可序列化对象是通过从 ObjectInputStream 中读取来恢复的。 Externalizable 实例可以通过 Serializable 接口中记录的 writeReplace 和 readResolve 方法指定替换对象。 Since: JDK1.1 方法总结 修饰符和类型 方法 描述 void readExternal(ObjectInput in) 该对象实现了 readExternal 方法来恢复其内容,方法是调用基本类型的 DataInput 方法和对象、字符串和数组的 readObject 方法。 void writeExternal(ObjectOutput out) 对象实现 writeExternal 方法以保存其内容,方法是调用 DataOutput 的方法获取其原始值,或者调用 ObjectOutput 的 writeObject 方法获取对象、字符串和数组。 方法详情 writeExternal void writeExternal(ObjectOutput out) throws IOException 对象实现 writeExternal 方法以保存其内容,方法是调用 DataOutput 的方法获取其原始值,或者调用 ObjectOutput 的 writeObject 方法获取对象、字符串和数组。 参数: 参数名称 参数描述 out 将对象写入的流 Throws: Throw名称 Throw描述 IOException 包括可能发生的任何 I/O 异常 readExternal void readExternal(ObjectInput in) throws ClassNotFoundException, IOException 该对象实现了 readExternal 方法来恢复其内容,方法是调用基本类型的 DataInput 方法和对象、字符串和数组的 readObject 方法。 readExternal 方法必须以与 writeExternal 写入的相同顺序和相同类型读取值。 参数: 参数名称 参数描述 in 要从中读取数据以恢复对象的流 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误 ClassNotFoundException 如果找不到正在恢复的对象的类。
DataOutput public interface DataOutput DataOutput 接口提供将数据从任何 Java 原始类型转换为一系列字节并将这些字节写入二进制流。 还有一种工具可以将字符串转换为修改后的 UTF-8 格式并写入生成的一系列字节。 对于此接口中所有写入字节的方法,通常情况下,如果由于某种原因无法写入字节,则会抛出 IOException。 Since: JDK1.0 方法总结 修饰符和类型 方法 描述 void write(byte[] b) 将数组 b 中的所有字节写入输出流。 void write(byte[] b, int off, int len) 按顺序将数组 b 中的 len 个字节写入输出流。 void write(int b) 将参数 b 的 8 个低位写入输出流。 void writeBoolean(boolean v) 将布尔值写入此输出流。 void writeByte(int v) 将参数 v 的 8 个低位写入输出流。 void writeBytes(String s) 将字符串写入输出流。 void writeChar(int v) 将一个由两个字节组成的 char 值写入输出流。 void writeChars(String s) 将字符串 s 中的每个字符按顺序写入输出流,每个字符两个字节。 void writeDouble(double v) 将包含八个字节的双精度值写入输出流。 void writeFloat(float v) 将一个由四个字节组成的浮点值写入输出流。 void writeInt(int v) 将一个由四个字节组成的 int 值写入输出流。 void writeLong(long v) 将一个由 8 个字节组成的 long 值写入输出流。 void writeShort(int v) 将两个字节写入输出流以表示参数的值。 void writeUTF(String s) 将两个字节的长度信息写入输出流,然后是字符串 s 中每个字符的修改后的 UTF-8 表示。 方法详情 write void write(int b) throws IOException 将参数 b 的 8 个低位写入输出流。 b 的高 24 位被忽略。 参数: 参数名称 参数描述 b 要写入的字节。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 write void write(byte[] b) throws IOException 将数组 b 中的所有字节写入输出流。 如果 b 为 null,则抛出 NullPointerException。 如果 b.length 为零,则不写入任何字节。 否则,先写入字节 b[0],然后写入 b[1],以此类推; 最后写入的字节是 b[b.length-1]。 参数: 参数名称 参数描述 b 数据。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 write...
DataInput public interface DataInput DataInput 接口提供从二进制流中读取字节并从中重建任何 Java 原始类型的数据。 还有一种工具可以从修改后的 UTF-8 格式的数据中重建字符串。 对于该接口中的所有读取例程,通常情况下,如果在读取所需字节数之前到达文件末尾,则会抛出 EOFException(这是一种 IOException)。 如果由于文件结尾以外的任何原因无法读取任何字节,则抛出除 EOFException 之外的 IOException。 特别是,如果输入流已关闭,则可能会引发 IOException。 修改后的 UTF-8 DataInput 和 DataOutput 接口的实现以对 UTF-8 稍作修改的格式表示 Unicode 字符串。 (有关标准 UTF-8 格式的信息,请参阅 Unicode 标准版本 4.0 的第 3.9 节 Unicode 编码形式)。 请注意,在下表中,最高有效位出现在最左侧的列中。 此格式与标准 UTF-8 格式的区别如下: 空字节 ‘\u0000’ 以 2 字节格式而不是 1 字节编码,因此编码的字符串永远不会嵌入空值。 仅使用 1 字节、2 字节和 3 字节格式。 补充字符以代理对的形式表示。 Since: JDK1.0 方法总结 修饰符和类型 方法 描述 boolean readBoolean() 读取一个输入字节,如果该字节非零则返回 true,如果该字节为零则返回 false。 byte readByte() 读取并返回一个输入字节。 char readChar() 读取两个输入字节并返回一个 char 值。 double readDouble() 读取八个输入字节并返回一个双精度值。 float readFloat() 读取四个输入字节并返回一个浮点值。 void readFully(byte[] b) 从输入流中读取一些字节并将它们存储到缓冲区数组中 b。 void readFully(byte[] b, int off, int len) 从输入流中读取 len 个字节。 int readInt() 读取四个输入字节并返回一个 int 值。 String readLine() 从输入流中读取下一行文本。 long readLong() 读取八个输入字节并返回一个 long 值。 short readShort() 读取两个输入字节并返回一个短值。 int readUnsignedByte() 读取一个输入字节,将其零扩展为 int 类型,并返回结果,因此该结果在 0 到 255 的范围内。 int readUnsignedShort() 读取两个输入字节并返回 0 到 65535 范围内的 int 值。 String readUTF() 读取使用修改后的 UTF-8 格式编码的字符串。 int skipBytes(int n) 尝试从输入流中跳过 n 个字节的数据,丢弃跳过的字节。 方法详情 readFully void readFully(byte[] b) throws IOException 从输入流中读取一些字节并将它们存储到缓冲区数组中 b。 读取的字节数等于...