Package com.activeviam.io
Class ExposedByteArrayOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.ByteArrayOutputStream
-
- com.activeviam.io.ExposedByteArrayOutputStream
-
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
public class ExposedByteArrayOutputStream extends ByteArrayOutputStream
Modified version of JGroups ExposedByteArrayOutputStream, which optimizes the write function to limit unnecessary transient array copies when the buffer gets large.- Author:
- ActiveViam
-
-
Constructor Summary
Constructors Constructor Description ExposedByteArrayOutputStream()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetCapacity()Returns the capacity of the stream.byte[]getRawBuffer()Returns the underlying byte array.voidreset()Resets thecountfield of this byte array output stream to zero, so that all currently accumulated output in the output stream is discarded.voidreset(int maxSize)Resets count and creates a new buf if the current buf is > maxSize.intsize()Returns the current size of the buffer.byte[]toByteArray()Creates a newly allocated byte array.voidwrite(byte[] b, int off, int len)Writeslenbytes from the specified byte array starting at offsetoffto this byte array output stream.voidwrite(int b)voidwriteTo(OutputStream out)Writes the complete contents of this byte array output stream to the specified output stream argument, as if by calling the output stream's write method usingout.write(buf, 0, count).-
Methods inherited from class java.io.ByteArrayOutputStream
close, toString, toString, toString, toString, writeBytes
-
Methods inherited from class java.io.OutputStream
flush, nullOutputStream, write
-
-
-
-
Method Detail
-
getRawBuffer
public byte[] getRawBuffer()
Returns the underlying byte array.
-
getCapacity
public int getCapacity()
Returns the capacity of the stream.
-
write
public void write(int b)
- Overrides:
writein classByteArrayOutputStream
-
write
public void write(byte[] b, int off, int len)Writeslenbytes from the specified byte array starting at offsetoffto this byte array output stream.- Overrides:
writein classByteArrayOutputStream- Parameters:
b- the data.off- the start offset in the data.len- the number of bytes to write.
-
writeTo
public void writeTo(OutputStream out) throws IOException
Writes the complete contents of this byte array output stream to the specified output stream argument, as if by calling the output stream's write method usingout.write(buf, 0, count).- Overrides:
writeToin classByteArrayOutputStream- Parameters:
out- the output stream to which to write the data.- Throws:
IOException- if an I/O error occurs.
-
reset
public void reset()
Resets thecountfield of this byte array output stream to zero, so that all currently accumulated output in the output stream is discarded. The output stream can be used again, reusing the already allocated buffer space.- Overrides:
resetin classByteArrayOutputStream- See Also:
ByteArrayInputStream.count
-
reset
public void reset(int maxSize)
Resets count and creates a new buf if the current buf is > maxSize. This method is not synchronized.- Parameters:
maxSize- size of the buffer
-
toByteArray
public byte[] toByteArray()
Creates a newly allocated byte array. Its size is the current size of this output stream and the valid contents of the buffer have been copied into it.- Overrides:
toByteArrayin classByteArrayOutputStream- Returns:
- the current contents of this output stream, as a byte array.
- See Also:
ByteArrayOutputStream.size()
-
size
public int size()
Returns the current size of the buffer.- Overrides:
sizein classByteArrayOutputStream- Returns:
- the value of the
countfield, which is the number of valid bytes in this output stream. - See Also:
ByteArrayOutputStream.count
-
-