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
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Returns the capacity of the stream.
    byte[]
    Returns the underlying byte array.
    void
    Resets the count field of this byte array output stream to zero, so that all currently accumulated output in the output stream is discarded.
    void
    reset(int maxSize)
    Resets count and creates a new buf if the current buf is > maxSize.
    int
    Returns the current size of the buffer.
    byte[]
    Creates a newly allocated byte array.
    void
    write(byte[] b, int off, int len)
    Writes len bytes from the specified byte array starting at offset off to this byte array output stream.
    void
    write(int b)
     
    void
    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 using out.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

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • ExposedByteArrayOutputStream

      public ExposedByteArrayOutputStream()
  • Method Details

    • 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:
      write in class ByteArrayOutputStream
    • write

      public void write(byte[] b, int off, int len)
      Writes len bytes from the specified byte array starting at offset off to this byte array output stream.
      Overrides:
      write in class ByteArrayOutputStream
      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 using out.write(buf, 0, count).
      Overrides:
      writeTo in class ByteArrayOutputStream
      Parameters:
      out - the output stream to which to write the data.
      Throws:
      IOException - if an I/O error occurs.
    • reset

      public void reset()
      Resets the count field 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:
      reset in class ByteArrayOutputStream
      See Also:
    • 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:
      toByteArray in class ByteArrayOutputStream
      Returns:
      the current contents of this output stream, as a byte array.
      See Also:
    • size

      public int size()
      Returns the current size of the buffer.
      Overrides:
      size in class ByteArrayOutputStream
      Returns:
      the value of the count field, which is the number of valid bytes in this output stream.
      See Also: