Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
java.io.OutputStream
java.io.ByteArrayOutputStream
public class ByteArrayOutputStream
extends OutputStream
The size of the internal buffer defaults to 32 and it is resized
by doubling the size of the buffer. This default size can be
overridden by using the
gnu.java.io.ByteArrayOutputStream.initialBufferSize
property.
There is a constructor that specified the initial buffer size and that is the preferred way to set that value because it it portable across all Java class library implementations.
Note that this class also has methods that convert the byte array
buffer to a String
using either the system default or an
application specified character encoding. Thus it can handle
multibyte character encodings.
Field Summary | |
protected byte[] |
|
protected int |
|
Constructor Summary | |
| |
|
Method Summary | |
void |
|
int |
|
byte[] |
|
String |
|
String |
|
String | |
void |
|
void |
|
void |
|
Methods inherited from class java.lang.Object | |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
public ByteArrayOutputStream()
This method initializes a newByteArrayOutputStream
with the default buffer size of 32 bytes. If a different initial buffer size is desired, see the constructorByteArrayOutputStream(int size)
. For applications where the source code is not available, the default buffer size can be set using the system propertygnu.java.io.ByteArrayOutputStream.initialBufferSize
public ByteArrayOutputStream(int size)
This method initializes a newByteArrayOutputStream
with a specified initial buffer size.
- Parameters:
size
- The initial buffer size in bytes
public void reset()
This method discards all of the bytes that have been written to the internal buffer so far by setting thecount
variable to 0. The internal buffer remains at its currently allocated size.
public int size()
This method returns the number of bytes that have been written to the buffer so far. This is the same as the value of the protectedcount
variable. If thereset
method is called, then this value is reset as well. Note that this method does not return the length of the internal buffer, but only the number of bytes that have been written to it.
- Returns:
- The number of bytes in the internal buffer
- See Also:
reset()
public byte[] toByteArray()
This method returns a byte array containing the bytes that have been written to this stream so far. This array is a copy of the valid bytes in the internal buffer and its length is equal to the number of valid bytes, not necessarily to the the length of the current internal buffer. Note that since this method allocates a new array, it should be used with caution when the internal buffer is very large.
public String toString()
Returns the bytes in the internal array as aString
. The bytes in the buffer are converted to characters using the system default encoding. There is an overloadedtoString()
method that allows an application specified character encoding to be used.
- Returns:
- A
String
containing the data written to this stream so far
public String toString(int hibyte)
Deprecated.
This method returns the bytes in the internal array as aString
. It uses each byte in the array as the low order eight bits of the Unicode character value and the passed in parameter as the high eight bits.This method does not convert bytes to characters in the proper way and so is deprecated in favor of the other overloaded
toString
methods which use a true character encoding.
- Parameters:
hibyte
- The high eight bits to use for each character in theString
- Returns:
- A
String
containing the data written to this stream so far
public String toString(String enc) throws UnsupportedEncodingException
Returns the bytes in the internal array as aString
. The bytes in the buffer are converted to characters using the specified encoding.
- Parameters:
enc
- The name of the character encoding to use
- Returns:
- A
String
containing the data written to this stream so far
- Throws:
UnsupportedEncodingException
- If the named encoding is not available
public void write(byte[] buffer, int offset, int add)
This method writeslen
bytes from the passed in arraybuf
starting at indexoffset
into the internal buffer.
- Overrides:
- write in interface OutputStream
- Parameters:
buffer
- The byte array to write data fromoffset
- The index into the buffer to start writing data fromadd
- The number of bytes to write
public void write(int oneByte)
This method writes the writes the specified byte into the internal buffer.
- Overrides:
- write in interface OutputStream
- Parameters:
oneByte
- The byte to be read passed as an int
public void writeTo(OutputStream out) throws IOException
This method writes all the bytes that have been written to this stream from the internal buffer to the specifiedOutputStream
.
- Parameters:
out
- TheOutputStream
to write to
- Throws:
IOException
- If an error occurs