java.io.Closeable, java.io.DataOutput, java.io.Flushable, java.io.ObjectOutput, java.io.ObjectStreamConstants, java.lang.AutoCloseablepublic class SerialOutput
extends java.io.ObjectOutputStream
ObjectOutputStream that stores class description
information in a ClassCatalog. It is used by
SerialBinding.
This class is used instead of an ObjectOutputStream, which it
extends, to write a compact object stream. For writing objects to a
database normally one of the serial binding classes is used. SerialOutput is used when an ObjectOutputStream is needed along
with compact storage. A ClassCatalog must be supplied, however, to
stored shared class descriptions.
The ClassCatalog is used to store class definitions rather than
embedding these into the stream. Instead, a class format identifier is
embedded into the stream. This identifier is then used by SerialInput to load the class format to deserialize the object.
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, SERIAL_FILTER_PERMISSION, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING| Constructor | Description |
|---|---|
SerialOutput(java.io.OutputStream out,
ClassCatalog classCatalog) |
Creates a serial output stream.
|
| Modifier and Type | Method | Description |
|---|---|---|
static byte[] |
getStreamHeader() |
Returns the fixed stream header used for all serialized streams in
PROTOCOL_VERSION_2 format.
|
protected void |
writeClassDescriptor(java.io.ObjectStreamClass classdesc) |
annotateClass, annotateProxyClass, close, defaultWriteObject, drain, enableReplaceObject, flush, putFields, replaceObject, reset, useProtocolVersion, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFields, writeFloat, writeInt, writeLong, writeObject, writeObjectOverride, writeShort, writeStreamHeader, writeUnshared, writeUTFpublic SerialOutput(java.io.OutputStream out,
ClassCatalog classCatalog)
throws java.io.IOException
out - is the output stream to which the compact serialized objects
will be written.classCatalog - is the catalog to which the class descriptions for
the serialized objects will be written.java.io.IOException - if an I/O error occurs while writing stream header.protected void writeClassDescriptor(java.io.ObjectStreamClass classdesc)
throws java.io.IOException
writeClassDescriptor in class java.io.ObjectOutputStreamjava.io.IOExceptionpublic static byte[] getStreamHeader()
SerialOutput always uses PROTOCOL_VERSION_2 serialization format
to guarantee that this header is fixed. SerialBinding removes
this header from serialized streams automatically.Copyright (c) 1996, 2020 Oracle and/or its affiliates. All rights reserved.