org.apache.commons.io.output
public class ByteArrayOutputStream extends OutputStream
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.
Version: $Id: ByteArrayOutputStream.java 491007 2006-12-29 13:50:34Z scolebourne $
Field Summary | |
---|---|
List | buffers The list of buffers, which grows and never reduces. |
int | count The total count of bytes written. |
byte[] | currentBuffer The current buffer. |
int | currentBufferIndex The index of the current buffer. |
static byte[] | EMPTY_BYTE_ARRAY A singleton empty byte array. |
int | filledBufferSum The total count of bytes in all the filled buffers. |
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. |
byte[] | getBuffer(int index)
Return the appropriate byte[] buffer
specified by index.
|
void | needNewBuffer(int newcount)
Makes a new buffer available either by allocating
a new one or re-cycling an existing one.
|
void | reset() |
int | size() |
byte[] | toByteArray()
Gets the curent contents of this byte stream as a byte array.
|
String | toString()
Gets the curent contents of this byte stream as a string.
|
String | toString(String enc)
Gets the curent contents of this byte stream as a string
using the specified encoding.
|
void | write(byte[] b, int off, int len) |
void | write(int b) |
void | writeTo(OutputStream out)
Writes the entire contents of this byte stream to the
specified output stream.
|
Parameters: size the initial size
Throws: IllegalArgumentException if size is negative
Throws: IOException never (this method should not declare this exception but it has to now due to backwards compatability)
byte[]
buffer
specified by index.
Parameters: index the index of the buffer required
Returns: the buffer
Parameters: newcount the size of the buffer if one is created
See Also: java.io.ByteArrayOutputStream#reset()
See Also: java.io.ByteArrayOutputStream#size()
Returns: the current contents of this output stream, as a byte array
See Also: java.io.ByteArrayOutputStream#toByteArray()
See Also: java.io.ByteArrayOutputStream#toString()
Parameters: enc the name of the character encoding
Returns: the string converted from the byte array
Throws: UnsupportedEncodingException if the encoding is not supported
See Also: java.io.ByteArrayOutputStream#toString(String)
See Also: java.io.OutputStream#write(byte[], int, int)
See Also: java.io.OutputStream#write(int)
Parameters: out the output stream to write to
Throws: IOException if an I/O error occurs, such as if the stream is closed
See Also: java.io.ByteArrayOutputStream#writeTo(OutputStream)