Class SerialOutput

java.lang.Object
java.io.OutputStream
java.io.ObjectOutputStream
com.sleepycat.bind.serial.SerialOutput
All Implemented Interfaces:
Closeable, DataOutput, Flushable, ObjectOutput, ObjectStreamConstants, AutoCloseable

public class SerialOutput extends ObjectOutputStream
A specialized 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.

See Also:
  • Constructor Details

    • SerialOutput

      public SerialOutput(OutputStream out, ClassCatalog classCatalog) throws IOException
      Creates a serial output stream.
      Parameters:
      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.
      Throws:
      IOException
  • Method Details

    • writeClassDescriptor

      protected void writeClassDescriptor(ObjectStreamClass classdesc) throws IOException
      Overrides:
      writeClassDescriptor in class ObjectOutputStream
      Throws:
      IOException
    • getStreamHeader

      public static byte[] getStreamHeader()
      Returns the fixed stream header used for all serialized streams in PROTOCOL_VERSION_2 format. To save space this header can be removed and serialized streams before storage and inserted before deserializing. SerialOutput always uses PROTOCOL_VERSION_2 serialization format to guarantee that this header is fixed. SerialBinding removes this header from serialized streams automatically.
      Returns:
      the fixed stream header.