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
public class ByteArrayBuffer extends OutputStream
Read/write buffer that stores a sequence of bytes.It works in a way similar to
ByteArrayOutputStreambut 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 Modifier and Type Field Description protected byte[]bufThe buffer where data is stored.
-
Constructor Summary
Constructors Constructor Description ByteArrayBuffer()Creates 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
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidclose()byte[]getRawData()Gets the underlying buffer that thisByteArrayBufferuses.InputStreamnewInputStream()Creates a newInputStreamthat reads from this buffer.InputStreamnewInputStream(int start, int length)Creates a newInputStreamthat reads a part of this bfufer.voidreset()intsize()byte[]toByteArray()Deprecated.this method causes a buffer reallocation.StringtoString()Decodes the contents of this buffer by the default encoding and returns it as a string.voidwrite(byte[] b, int off, int len)voidwrite(int b)voidwrite(InputStream in)Reads all the data of the givenInputStreamand appends them into this buffer.voidwriteTo(OutputStream out)-
Methods inherited from class java.io.OutputStream
flush, nullOutputStream, write
-
-
-
-
Constructor Detail
-
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 Detail
-
write
public final void write(InputStream in) throws IOException
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
public final void writeTo(OutputStream out) throws IOException
- Throws:
IOException
-
reset
public final void reset()
-
toByteArray
public final byte[] 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
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classOutputStream- Throws:
IOException
-
newInputStream
public final InputStream newInputStream()
Creates a newInputStreamthat reads from this buffer.
-
newInputStream
public final InputStream newInputStream(int start, int length)
Creates a newInputStreamthat reads a part of this bfufer.
-
-