Class SeekableByteArrayOutputStream

java.lang.Object
java.io.OutputStream
java.io.ByteArrayOutputStream
org.monte.media.io.SeekableByteArrayOutputStream
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable

public class SeekableByteArrayOutputStream extends ByteArrayOutputStream
SeekableByteArrayOutputStream.
Author:
Werner Randelshofer
  • Constructor Details

    • SeekableByteArrayOutputStream

      public SeekableByteArrayOutputStream()
      Creates a new byte array output stream. The buffer capacity is initially 32 bytes, though its size increases if necessary.
    • SeekableByteArrayOutputStream

      public SeekableByteArrayOutputStream(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.
    • SeekableByteArrayOutputStream

      public SeekableByteArrayOutputStream(byte[] buf)
      Creates a new byte array output stream, which reuses the supplied buffer.
  • Method Details

    • write

      public void write(int b)
      Writes the specified byte to this byte array output stream.
      Overrides:
      write in class ByteArrayOutputStream
      Parameters:
      b - the byte to be written.
    • 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.
    • 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:
    • seek

      public void seek(long pos) throws IOException
      Sets the current stream position to the desired location. The next read will occur at this location. The bit offset is set to 0.

      An IndexOutOfBoundsException will be thrown if pos is smaller than the flushed position (as returned by getflushedPosition).

      It is legal to seek past the end of the file; an EOFException will be thrown only if a read is performed.

      Parameters:
      pos - a long containing the desired file pointer position.
      Throws:
      IndexOutOfBoundsException - if pos is smaller than the flushed position.
      IOException - if any other I/O error occurs.
    • getStreamPosition

      public long getStreamPosition() throws IOException
      Returns the current byte position of the stream. The next write will take place starting at this offset.
      Returns:
      a long containing the position of the stream.
      Throws:
      IOException - if an I/O error occurs.
    • toOutputStream

      public void toOutputStream(OutputStream out) throws IOException
      Writes the contents of the byte array into the specified output stream.
      Parameters:
      out -
      Throws:
      IOException
    • getBuffer

      public byte[] getBuffer()
      Returns the underlying byte buffer.