org.apache.struts2.util
Class FastByteArrayOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.apache.struts2.util.FastByteArrayOutputStream
All Implemented Interfaces:
Closeable, Flushable

public class FastByteArrayOutputStream
extends OutputStream

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.


Field Summary
private  int blockSize
           
private  byte[] buffer
           
private  LinkedList buffers
           
private  boolean closed
           
private static int DEFAULT_BLOCK_SIZE
           
private  int index
           
private  int size
           
 
Constructor Summary
FastByteArrayOutputStream()
           
FastByteArrayOutputStream(int aSize)
           
 
Method Summary
protected  void addBuffer()
          Create a new buffer and store the current one in linked list
 void close()
           
 int getSize()
           
 byte[] toByteArray()
           
 String toString()
           
 void write(byte[] data, int offset, int length)
           
 void write(int datum)
           
 void writeTo(OutputStream out)
           
 void writeTo(RandomAccessFile out)
           
 void writeTo(Writer out, String encoding)
           
 
Methods inherited from class java.io.OutputStream
flush, 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

buffers

private LinkedList buffers

buffer

private byte[] buffer

closed

private boolean closed

blockSize

private int blockSize

index

private int index

size

private int size
Constructor Detail

FastByteArrayOutputStream

public FastByteArrayOutputStream()

FastByteArrayOutputStream

public FastByteArrayOutputStream(int aSize)
Method Detail

getSize

public int getSize()

close

public void close()
Specified by:
close in interface Closeable
Overrides:
close in class OutputStream

toByteArray

public byte[] toByteArray()

toString

public String toString()
Overrides:
toString in class Object

write

public void write(int datum)
           throws IOException
Specified by:
write in class OutputStream
Throws:
IOException

write

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

writeTo

public void writeTo(OutputStream out)
             throws IOException
Throws:
IOException

writeTo

public void writeTo(RandomAccessFile out)
             throws IOException
Throws:
IOException

writeTo

public void writeTo(Writer out,
                    String encoding)
             throws IOException
Throws:
IOException

addBuffer

protected void addBuffer()
Create a new buffer and store the current one in linked list



Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.