Class DataInputBuffer

All Implemented Interfaces:
Closeable, DataInput, AutoCloseable

@LimitedPrivate({"HDFS","MapReduce"}) @Unstable public class DataInputBuffer extends DataInputStream
A reusable DataInput implementation that reads from an in-memory buffer.

This saves memory over creating a new DataInputStream and ByteArrayInputStream each time data is read.

Typical usage is something like the following:


 DataInputBuffer buffer = new DataInputBuffer();
 while (... loop condition ...) {
   byte[] data = ... get data ...;
   int dataLength = ... get data length ...;
   buffer.reset(data, dataLength);
   ... read buffer using DataInput methods ...
 }
 
  • Constructor Details

    • DataInputBuffer

      public DataInputBuffer()
      Constructs a new empty buffer.
  • Method Details

    • reset

      public void reset(byte[] input, int length)
      Resets the data that the buffer reads.
      Parameters:
      input - input.
      length - length.
    • reset

      public void reset(byte[] input, int start, int length)
      Resets the data that the buffer reads.
      Parameters:
      input - input.
      start - start.
      length - length.
    • getData

      public byte[] getData()
    • getPosition

      public int getPosition()
      Returns the current position in the input.
      Returns:
      position.
    • getLength

      public int getLength()
      Returns the index one greater than the last valid character in the input stream buffer.
      Returns:
      length.