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 610010 2008-01-08 14:50:59Z niallp $
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()
Return the current size of the byte array. |
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)
Write the bytes to byte array. |
void | write(int b)
Write a byte to byte array. |
int | write(InputStream in)
Writes the entire contents of the specified input stream to this
byte stream. |
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()
Returns: the current size of the byte array
Returns: the current contents of this output stream, as a byte array
See Also: java.io.ByteArrayOutputStream#toByteArray()
Returns: the contents of the byte array as a String
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)
Parameters: b the bytes to write off The start offset len The number of bytes to write
Parameters: b the byte to write
Parameters: in the input stream to read from
Returns: total number of bytes read from the input stream (and written to this stream)
Throws: IOException if an I/O error occurs while reading the input stream
Since: Commons IO 1.4
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)