DataOutputBuffer (Apache Hadoop Common 3.5.0 API)
Description: declaration: package: org.apache.hadoop.io, class: DataOutputBuffer

Package org.apache.hadoop.io

# Class DataOutputBuffer

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.io.DataOutputStream
org.apache.hadoop.io.DataOutputBuffer

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

@LimitedPrivate({"HDFS","MapReduce"}) @Unstable public class DataOutputBuffer extends DataOutputStream
A reusable `DataOutput` implementation that writes to an in-memory buffer.

This saves memory over creating a new DataOutputStream and ByteArrayOutputStream each time data is written.

Typical usage is something like the following:

     DataOutputBuffer buffer = new DataOutputBuffer();
     while (... loop condition ...) {
       buffer.reset();
       ... write buffer using DataOutput methods ...
       byte[] data = buffer.getData();
       int dataLength = buffer.getLength();
       ... write data to its ultimate destination ...
     }

- ## Field Summary

  ### Fields inherited from class java.io.DataOutputStream

  `written`

  ### Fields inherited from class java.io.FilterOutputStream

  `out`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DataOutputBuffer()`
  Constructs a new empty buffer.
  `DataOutputBuffer(int size)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `byte[]`
  `getData()`
  Returns the current contents of the buffer.
  `int`
  `getLength()`
  Returns the length of the valid data currently in the buffer.
  `DataOutputBuffer`
  `reset()`
  Resets the buffer to empty.
  `void`
  `write(DataInput in, int length)`
  Writes bytes from a DataInput directly into the buffer.
  `void`
  `writeInt(int v, int offset)`
  Overwrite an integer into the internal buffer.
  `void`
  `writeTo(OutputStream out)`
  Write to a file stream.

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

  `flush, size, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFloat, writeInt, writeLong, writeShort, writeUTF`

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

  `close, write`

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

  ### Methods inherited from interface java.io.DataOutput

  `write`

- ## Constructor Details

  - ### DataOutputBuffer

    public DataOutputBuffer()
    Constructs a new empty buffer.

  - ### DataOutputBuffer

    public DataOutputBuffer(int size)

- ## Method Details

  - ### getData

    public byte[] getData()
    Returns the current contents of the buffer. Data is only valid to `getLength()`.
    Returns:
      data byte.

  - ### getLength

    public int getLength()
    Returns the length of the valid data currently in the buffer.
    Returns:
      length.

  - ### reset

    public DataOutputBuffer reset()
    Resets the buffer to empty.
    Returns:
      DataOutputBuffer.

  - ### write

    public void write(DataInput in, int length) throws IOException
    Writes bytes from a DataInput directly into the buffer.
    Parameters:
      `in` - data input.
      `length` - length.
    Throws:
      `IOException` - raised on errors performing I/O.

  - ### writeTo

    public void writeTo(OutputStream out) throws IOException
    Write to a file stream.
    Parameters:
      `out` - OutputStream.
    Throws:
      `IOException` - raised on errors performing I/O.

  - ### writeInt

    public void writeInt(int v, int offset) throws IOException
    Overwrite an integer into the internal buffer. Note that this call can only be used to overwrite existing data in the buffer, i.e., buffer#count cannot be increased, and DataOutputStream#written cannot be increased.
    Parameters:
      `v` - v.
      `offset` - offset.
    Throws:
      `IOException` - raised on errors performing I/O.