Package org.bukkit.util.io

# Class BukkitObjectOutputStream

java.lang.Object
java.io.OutputStream
java.io.ObjectOutputStream
org.bukkit.util.io.BukkitObjectOutputStream

All Implemented Interfaces:
  `Closeable`, `DataOutput`, `Flushable`, `ObjectOutput`, `ObjectStreamConstants`, `AutoCloseable`

public class BukkitObjectOutputStream extends ObjectOutputStream
This class is designed to be used in conjunction with the `ConfigurationSerializable` API. It translates objects to an internal implementation for later deserialization using `BukkitObjectInputStream`.

Behavior of implementations extending this class is not guaranteed across future versions.

## Nested Class Summary

## Nested classes/interfaces inherited from class java.io.ObjectOutputStream

`ObjectOutputStream.PutField`

## Field Summary

### Fields inherited from interface java.io.ObjectStreamConstants

`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 Summary

Constructors
Modifier
Constructor
Description
`protected`
`BukkitObjectOutputStream()`
Constructor provided to mirror super functionality.
``
`BukkitObjectOutputStream(OutputStream out)`
Object output stream decoration constructor.

## Method Summary

Modifier and Type
Method
Description
`protected Object`
`replaceObject(Object obj)`

### Methods inherited from class java.io.ObjectOutputStream

`annotateClass, annotateProxyClass, close, defaultWriteObject, drain, enableReplaceObject, flush, putFields, reset, useProtocolVersion, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeClassDescriptor, writeDouble, writeFields, writeFloat, writeInt, writeLong, writeObject, writeObjectOverride, writeShort, writeStreamHeader, writeUnshared, writeUTF`

### Methods inherited from class java.io.OutputStream

`nullOutputStream`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### BukkitObjectOutputStream

protected BukkitObjectOutputStream() throws IOException, SecurityException
Constructor provided to mirror super functionality.

Throws:
  `IOException` - if an I/O error occurs while creating this stream
  `SecurityException` - if a security manager exists and denies enabling subclassing
See Also:
  - `ObjectOutputStream()`

### BukkitObjectOutputStream

public BukkitObjectOutputStream(OutputStream out) throws IOException
Object output stream decoration constructor.

Parameters:
  `out` - the stream to wrap
Throws:
  `IOException` - if an I/O error occurs while writing stream header
See Also:
  - `ObjectOutputStream(OutputStream)`

## Method Details

### replaceObject

protected Object replaceObject(Object obj) throws IOException

Overrides:
  `replaceObject` in class `ObjectOutputStream`
Throws:
  `IOException`