com.vladium.util
Class ByteArrayOStream

java.lang.Object
  extended by java.io.OutputStream
      extended by com.vladium.util.ByteArrayOStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable

public final class ByteArrayOStream
extends java.io.OutputStream

An unsynchronized version of java.io.ByteArrayOutputStream that can expose the underlying byte array without a defensive clone and can also be converted to a ByteArrayIStream without intermediate array copies.

All argument validation is disabled in release mode.

NOTE: copy-on-write not supported

Author:
(C) 2001, Vlad Roubtsov

Field Summary
private  byte[] m_buf
           
private  int m_pos
           
private static int NATIVE_COPY_THRESHOLD
           
 
Constructor Summary
ByteArrayOStream(int initialCapacity)
          Callee takes ownership of 'buf'.
 
Method Summary
 int capacity()
           
 void close()
          Equivalent to reset().
 byte[] copyByteArray()
           
 byte[] getByteArray()
           
 void reset()
          Does not reduce the current capacity.
 int size()
           
 ByteArrayIStream toByteIStream()
           
 void write(byte[] buf, int offset, int length)
           
 void write(int b)
           
 void write2(int b1, int b2)
           
 void write3(int b1, int b2, int b3)
           
 void write4(int b1, int b2, int b3, int b4)
           
 void writeTo(java.io.OutputStream out)
           
 
Methods inherited from class java.io.OutputStream
flush, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_buf

private byte[] m_buf

m_pos

private int m_pos

NATIVE_COPY_THRESHOLD

private static final int NATIVE_COPY_THRESHOLD
See Also:
Constant Field Values
Constructor Detail

ByteArrayOStream

public ByteArrayOStream(int initialCapacity)
Callee takes ownership of 'buf'.

Method Detail

toByteIStream

public final ByteArrayIStream toByteIStream()

write2

public final void write2(int b1,
                         int b2)

write3

public final void write3(int b1,
                         int b2,
                         int b3)

write4

public final void write4(int b1,
                         int b2,
                         int b3,
                         int b4)

writeTo

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

getByteArray

public final byte[] getByteArray()

copyByteArray

public final byte[] copyByteArray()
Returns:
[result.length = size()]

size

public final int size()

capacity

public final int capacity()

reset

public final void reset()
Does not reduce the current capacity.


write

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

write

public final void write(byte[] buf,
                        int offset,
                        int length)
Overrides:
write in class java.io.OutputStream

close

public final void close()
Equivalent to reset().

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.OutputStream