|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.io.OutputStream
org.apache.commons.io.output.ByteArrayOutputStream
This class implements an output stream in which the data is written into a byte array. The buffer automatically grows as data is written to it.
The data can be retrieved using toByteArray()
and
toString()
.
Closing a ByteArrayOutputStream has no effect. The methods in this class can be called after the stream has been closed without generating an IOException.
This is an alternative implementation of the java.io.ByteArrayOutputStream class. The original implementation only allocates 32 bytes at the beginning. As this class is designed for heavy duty it starts at 1024 bytes. In contrast to the original it doesn't reallocate the whole memory block but allocates additional buffers. This way no buffers need to be garbage collected and the contents don't have to be copied to the new buffer. This class is designed to behave exactly like the original. The only exception is the deprecated toString(int) method that has been ignored.
Field Summary | |
private java.util.List |
buffers
|
private int |
count
|
private byte[] |
currentBuffer
|
private int |
currentBufferIndex
|
private int |
filledBufferSum
|
Constructor Summary | |
ByteArrayOutputStream()
Creates a new byte array output stream. |
|
ByteArrayOutputStream(int size)
Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes. |
Method Summary | |
void |
close()
Closing a ByteArrayOutputStream has no effect. |
private byte[] |
getBuffer(int index)
|
private void |
needNewBuffer(int newcount)
|
void |
reset()
|
int |
size()
|
byte[] |
toByteArray()
|
java.lang.String |
toString()
|
java.lang.String |
toString(java.lang.String enc)
|
void |
write(byte[] b,
int off,
int len)
|
void |
write(int b)
|
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, wait, wait, wait |
Field Detail |
private java.util.List buffers
private int currentBufferIndex
private int filledBufferSum
private byte[] currentBuffer
private int count
Constructor Detail |
public ByteArrayOutputStream()
public ByteArrayOutputStream(int size)
size
- the initial size.
java.lang.IllegalArgumentException
- if size is negative.Method Detail |
private byte[] getBuffer(int index)
private void needNewBuffer(int newcount)
public void write(byte[] b, int off, int len)
OutputStream.write(byte[], int, int)
public void write(int b)
OutputStream.write(int)
public int size()
ByteArrayOutputStream.size()
public void close() throws java.io.IOException
java.io.IOException
- in case an I/O error occurspublic void reset()
ByteArrayOutputStream.reset()
public void writeTo(java.io.OutputStream out) throws java.io.IOException
java.io.IOException
ByteArrayOutputStream.writeTo(OutputStream)
public byte[] toByteArray()
ByteArrayOutputStream.toByteArray()
public java.lang.String toString()
ByteArrayOutputStream.toString()
public java.lang.String toString(java.lang.String enc) throws java.io.UnsupportedEncodingException
java.io.UnsupportedEncodingException
ByteArrayOutputStream.toString(String)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |