org.mortbay.util
Class ByteBufferOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.mortbay.util.ByteBufferOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable
Direct Known Subclasses:
BufferedOutputStream

public class ByteBufferOutputStream
extends java.io.OutputStream

ByteBuffer OutputStream. This stream is similar to the java.io.ByteArrayOutputStream, except that it maintains a reserve of bytes at the start of the buffer and allows efficient prepending of data.

Version:
$Revision: 1.18 $
Author:
Greg Wilkins (gregw)

Field Summary
protected  byte[] _buf
           
 
Constructor Summary
ByteBufferOutputStream()
          Constructor.
ByteBufferOutputStream(int capacity)
          Constructor.
ByteBufferOutputStream(int capacity, int preReserve)
          Constructor.
ByteBufferOutputStream(int bufferSize, int preReserve, int postReserve)
          Constructor.
 
Method Summary
 int bufferSize()
           
 int capacity()
           
 void close()
           
 void destroy()
           
 void ensureCapacity(int n)
           
 void ensureReserve(int n)
           
 void ensureSize(int bufSize)
           
 void ensureSize(int bufSize, int pre, int post)
           
 void ensureSpareCapacity(int n)
           
 void flush()
           
 boolean isFixed()
           
 int postReserve()
           
 void postwrite(byte b)
          Write bytes into the postreserve.
 void postwrite(byte[] b, int offset, int length)
          Write bytes into the postreserve.
 int preReserve()
           
 void prewrite(byte[] b)
          Write byte array to start of the buffer.
 void prewrite(byte[] b, int offset, int length)
          Write byte range to start of the buffer.
 void prewrite(int b)
          Write byte to start of the buffer.
 void reset(int reserve)
           
 void resetStream()
           
 void setFixed(boolean fixed)
           
 int size()
           
 int spareCapacity()
           
 void write(byte[] b)
           
 void write(byte[] b, int offset, int length)
           
 void write(int b)
           
 void writeTo(java.io.OutputStream out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_buf

protected byte[] _buf
Constructor Detail

ByteBufferOutputStream

public ByteBufferOutputStream()
Constructor.


ByteBufferOutputStream

public ByteBufferOutputStream(int capacity)
Constructor.

Parameters:
capacity - Buffer capacity

ByteBufferOutputStream

public ByteBufferOutputStream(int capacity,
                              int preReserve)
Constructor.

Parameters:
capacity - Buffer capacity.
preReserve - The reserve of byte for prepending

ByteBufferOutputStream

public ByteBufferOutputStream(int bufferSize,
                              int preReserve,
                              int postReserve)
Constructor.

Parameters:
bufferSize - The size of the buffer == capacity+preReserve+postReserve
preReserve - The reserve of byte for prepending
postReserve - The reserve of byte for appending
Method Detail

isFixed

public boolean isFixed()
Returns:
True if the buffer cannot be expanded

setFixed

public void setFixed(boolean fixed)
Parameters:
fixed - True if the buffer cannot be expanded

size

public int size()
Returns:
The size of valid data in the buffer.

bufferSize

public int bufferSize()
Returns:
The size of the buffer.

capacity

public int capacity()
Returns:
The capacity of the buffer excluding pre and post reserves.

spareCapacity

public int spareCapacity()
Returns:
The available capacity of the buffer excluding pre and post reserves and data already written.

preReserve

public int preReserve()
Returns:
The current pre reserve.

postReserve

public int postReserve()
Returns:
The current post reserve.

writeTo

public void writeTo(java.io.OutputStream out)
             throws java.io.IOException
Throws:
java.io.IOException

write

public void write(int b)
           throws java.io.IOException
Specified by:
write in class java.io.OutputStream
Throws:
java.io.IOException

write

public void write(byte[] b)
           throws java.io.IOException
Overrides:
write in class java.io.OutputStream
Throws:
java.io.IOException

write

public void write(byte[] b,
                  int offset,
                  int length)
           throws java.io.IOException
Overrides:
write in class java.io.OutputStream
Throws:
java.io.IOException

prewrite

public void prewrite(int b)
Write byte to start of the buffer.

Parameters:
b -

prewrite

public void prewrite(byte[] b)
Write byte array to start of the buffer.

Parameters:
b -

prewrite

public void prewrite(byte[] b,
                     int offset,
                     int length)
Write byte range to start of the buffer.

Parameters:
b -
offset -
length -

postwrite

public void postwrite(byte b)
               throws java.io.IOException
Write bytes into the postreserve. The capacity is not checked.

Parameters:
b -
offset -
length -
Throws:
java.io.IOException

postwrite

public void postwrite(byte[] b,
                      int offset,
                      int length)
               throws java.io.IOException
Write bytes into the postreserve. The capacity is not checked.

Parameters:
b -
offset -
length -
Throws:
java.io.IOException

flush

public void flush()
           throws java.io.IOException
Specified by:
flush in interface java.io.Flushable
Overrides:
flush in class java.io.OutputStream
Throws:
java.io.IOException

resetStream

public void resetStream()

reset

public void reset(int reserve)

close

public void close()
           throws java.io.IOException
Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.OutputStream
Throws:
java.io.IOException

destroy

public void destroy()

ensureReserve

public void ensureReserve(int n)

ensureSize

public void ensureSize(int bufSize)
                throws java.io.IOException
Throws:
java.io.IOException

ensureSize

public void ensureSize(int bufSize,
                       int pre,
                       int post)
                throws java.io.IOException
Throws:
java.io.IOException

ensureSpareCapacity

public void ensureSpareCapacity(int n)
                         throws java.io.IOException
Throws:
java.io.IOException

ensureCapacity

public void ensureCapacity(int n)
                    throws java.io.IOException
Throws:
java.io.IOException


Copyright © 2004 Mortbay Consulting Pty. Ltd. All Rights Reserved.