org.apache.hadoop.io
Class OutputBuffer

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by org.apache.hadoop.io.OutputBuffer
All Implemented Interfaces:
Closeable, Flushable

public class OutputBuffer
extends FilterOutputStream

A reusable OutputStream implementation that writes to an in-memory buffer.

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

Typical usage is something like the following:


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

See Also:
DataOutputBuffer, InputBuffer

Field Summary
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
OutputBuffer()
          Constructs a new empty buffer.
 
Method Summary
 byte[] getData()
          Returns the current contents of the buffer.
 int getLength()
          Returns the length of the valid data currently in the buffer.
 OutputBuffer reset()
          Resets the buffer to empty.
 void write(InputStream in, int length)
          Writes bytes from a InputStream directly into the buffer.
 
Methods inherited from class java.io.FilterOutputStream
close, flush, write, write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OutputBuffer

public OutputBuffer()
Constructs a new empty buffer.

Method Detail

getData

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


getLength

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


reset

public OutputBuffer reset()
Resets the buffer to empty.


write

public void write(InputStream in,
                  int length)
           throws IOException
Writes bytes from a InputStream directly into the buffer.

Throws:
IOException


Copyright © 2009 The Apache Software Foundation