Module jakarta.mail

Class SharedByteArrayInputStream

  • All Implemented Interfaces:
    SharedInputStream, java.io.Closeable, java.lang.AutoCloseable

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

      Fields 
      Modifier and Type Field Description
      protected int start
      Position within shared buffer that this stream starts at.
      • Fields inherited from class java.io.ByteArrayInputStream

        buf, count, mark, pos
    • Constructor Summary

      Constructors 
      Constructor Description
      SharedByteArrayInputStream​(byte[] buf)
      Create a SharedByteArrayInputStream representing the entire byte array.
      SharedByteArrayInputStream​(byte[] buf, int offset, int length)
      Create a SharedByteArrayInputStream representing the part of the byte array from offset for length bytes.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      long getPosition()
      Return the current position in the InputStream, as an offset from the beginning of the InputStream.
      java.io.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).
      • Methods inherited from class java.io.ByteArrayInputStream

        available, close, mark, markSupported, read, read, readAllBytes, readNBytes, reset, skip, transferTo
      • Methods inherited from class java.io.InputStream

        nullInputStream, read, readNBytes
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • start

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

      • 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 Detail

      • 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 java.io.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