Class SharedByteArrayInputStream

java.lang.Object
java.io.InputStream
java.io.ByteArrayInputStream
jakarta.mail.util.SharedByteArrayInputStream
All Implemented Interfaces:
SharedInputStream, Closeable, AutoCloseable

public class SharedByteArrayInputStream extends ByteArrayInputStream implements SharedInputStream
A ByteArrayInputStream that implements the SharedInputStream interface, allowing the underlying byte array to be shared between multiple readers.
Since:
JavaMail 1.4
Author:
Bill Shannon
  • Field Details

    • start

      protected int start
      Position within shared buffer that this stream starts at.
  • Constructor Details

    • SharedByteArrayInputStream

      public SharedByteArrayInputStream(byte[] buf)
      Create a SharedByteArrayInputStream representing the entire byte array.
      Parameters:
      buf - the byte array
    • SharedByteArrayInputStream

      public SharedByteArrayInputStream(byte[] buf, int offset, int length)
      Create a SharedByteArrayInputStream representing the part of the byte array from offset for length bytes.
      Parameters:
      buf - the byte array
      offset - offset in byte array to first byte to include
      length - number of bytes to include
  • Method Details

    • getPosition

      public long getPosition()
      Return the current position in the InputStream, as an offset from the beginning of the InputStream.
      Specified by:
      getPosition in interface SharedInputStream
      Returns:
      the current position
    • newStream

      public InputStream newStream(long start, long end)
      Return a new InputStream representing a subset of the data from this InputStream, starting at start (inclusive) up to end (exclusive). start must be non-negative. If end is -1, the new stream ends at the same place as this stream. The returned InputStream will also implement the SharedInputStream interface.
      Specified by:
      newStream in interface SharedInputStream
      Parameters:
      start - the starting position
      end - the ending position + 1
      Returns:
      the new stream