Interface SharedInputStream


  • public interface SharedInputStream
    An InputStream that is backed by data that can be shared by multiple readers may implement this interface. This allows users of such an InputStream to determine the current positionin the InputStream, and to create new InputStreams representing a subset of the data in the original InputStream. The new InputStream will access the same underlying data as the original, without copying the data.
    Since:
    JavaMail 1.2
    Version:
    1.2, 02/03/27
    Author:
    Bill Shannon
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      long getPosition()
      Return the current position in the InputStream, as an offset from the beginning of the InputStream.
      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).
      void writeTo​(long start, long end, OutputStream out)
      Writes the specified region to another OutputStream.
    • Method Detail

      • getPosition

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

        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.
        Parameters:
        start - the starting position
        end - the ending position + 1
        Returns:
        the new stream
      • writeTo

        void writeTo​(long start,
                     long end,
                     OutputStream out)
        Writes the specified region to another OutputStream.
        Parameters:
        start - the starting position
        end - the ending position + 1
        out - output stream