Package com.sun.xml.ws.util
Class ByteArrayBuffer
java.lang.Object
java.io.OutputStream
com.sun.xml.ws.util.ByteArrayBuffer
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
Read/write buffer that stores a sequence of bytes.
It works in a way similar to ByteArrayOutputStream but
this class works better in the following ways:
- no synchronization
- offers a
newInputStream()that creates a newInputStreamthat won't cause buffer reallocation. - less parameter correctness checking
- offers a
write(InputStream)method that reads the entirety of the givenInputStreamwithout using a temporary buffer.
- Author:
- Kohsuke Kawaguchi
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new byte array output stream.ByteArrayBuffer(byte[] data) ByteArrayBuffer(byte[] data, int length) ByteArrayBuffer(int size) Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()final byte[]Gets the underlying buffer that thisByteArrayBufferuses.final InputStreamCreates a newInputStreamthat reads from this buffer.final InputStreamnewInputStream(int start, int length) Creates a newInputStreamthat reads a part of this bfufer.final voidreset()final intsize()final byte[]Deprecated.this method causes a buffer reallocation.toString()Decodes the contents of this buffer by the default encoding and returns it as a string.final voidwrite(byte[] b, int off, int len) final voidwrite(int b) final voidwrite(InputStream in) Reads all the data of the givenInputStreamand appends them into this buffer.final voidwriteTo(OutputStream out) Methods inherited from class java.io.OutputStream
flush, nullOutputStream, write
-
Field Details
-
buf
protected byte[] bufThe buffer where data is stored.
-
-
Constructor Details
-
ByteArrayBuffer
public ByteArrayBuffer()Creates a new byte array output stream. The buffer capacity is initially 32 bytes, though its size increases if necessary. -
ByteArrayBuffer
public ByteArrayBuffer(int size) Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.- Parameters:
size- the initial size.- Throws:
IllegalArgumentException- if size is negative.
-
ByteArrayBuffer
public ByteArrayBuffer(byte[] data) -
ByteArrayBuffer
public ByteArrayBuffer(byte[] data, int length)
-
-
Method Details
-
write
Reads all the data of the givenInputStreamand appends them into this buffer.- Throws:
IOException- if the read operation fails with anIOException.
-
write
public final void write(int b) - Specified by:
writein classOutputStream
-
write
public final void write(byte[] b, int off, int len) - Overrides:
writein classOutputStream
-
writeTo
- Throws:
IOException
-
reset
public final void reset() -
toByteArray
Deprecated.this method causes a buffer reallocation. Use it only when you have to.Gets the copy of exact-size byte[] that represents the written data.Since this method needs to allocate a new byte[], this method will be costly.
-
size
public final int size() -
getRawData
public final byte[] getRawData()Gets the underlying buffer that thisByteArrayBufferuses. It's never small than itssize(). Use with caution. -
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classOutputStream- Throws:
IOException
-
newInputStream
Creates a newInputStreamthat reads from this buffer. -
newInputStream
Creates a newInputStreamthat reads a part of this bfufer. -
toString
Decodes the contents of this buffer by the default encoding and returns it as a string.Meant to aid debugging, but no more.
-