com.opensymphony.module.sitemesh.util
Class FastByteArrayOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.ByteArrayOutputStream
          extended by com.opensymphony.module.sitemesh.util.FastByteArrayOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable

public class FastByteArrayOutputStream
extends java.io.ByteArrayOutputStream

A speedy implementation of ByteArrayOutputStream. It's not synchronized, and it does not copy buffers when it's expanded. There's also no copying of the internal buffer if it's contents is extracted with the writeTo(stream) method.

Version:
$Revision: 1.2 $
Author:
Rickard ???berg, Scott Farquhar

Field Summary
private  int blockSize
           
private  byte[] buffer
          Internal buffer.
private  java.util.LinkedList buffers
           
private static int DEFAULT_BLOCK_SIZE
           
private  int index
           
private  int size
           
 
Fields inherited from class java.io.ByteArrayOutputStream
buf, count
 
Constructor Summary
FastByteArrayOutputStream()
           
FastByteArrayOutputStream(int aSize)
           
 
Method Summary
 void close()
           
 void flush()
           
 void reset()
           
 int size()
           
 byte[] toByteArray()
           
 java.lang.String toString()
           
 java.lang.String toString(java.lang.String enc)
           
 void write(byte[] data, int offset, int length)
           
 void write(int datum)
           
 void writeTo(java.io.OutputStream out)
           
 
Methods inherited from class java.io.ByteArrayOutputStream
toString
 
Methods inherited from class java.io.OutputStream
write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_BLOCK_SIZE

private static final int DEFAULT_BLOCK_SIZE
See Also:
Constant Field Values

buffer

private byte[] buffer
Internal buffer.


buffers

private java.util.LinkedList buffers

index

private int index

size

private int size

blockSize

private int blockSize
Constructor Detail

FastByteArrayOutputStream

public FastByteArrayOutputStream()

FastByteArrayOutputStream

public FastByteArrayOutputStream(int aSize)
Method Detail

writeTo

public void writeTo(java.io.OutputStream out)
             throws java.io.IOException
Overrides:
writeTo in class java.io.ByteArrayOutputStream
Throws:
java.io.IOException

size

public int size()
Overrides:
size in class java.io.ByteArrayOutputStream

toByteArray

public byte[] toByteArray()
Overrides:
toByteArray in class java.io.ByteArrayOutputStream

write

public void write(int datum)
Overrides:
write in class java.io.ByteArrayOutputStream

write

public void write(byte[] data,
                  int offset,
                  int length)
Overrides:
write in class java.io.ByteArrayOutputStream

reset

public void reset()
Overrides:
reset in class java.io.ByteArrayOutputStream

toString

public java.lang.String toString(java.lang.String enc)
                          throws java.io.UnsupportedEncodingException
Overrides:
toString in class java.io.ByteArrayOutputStream
Throws:
java.io.UnsupportedEncodingException

toString

public java.lang.String toString()
Overrides:
toString in class java.io.ByteArrayOutputStream

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

close

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

www.opensymphony.com/sitemesh/