javax.mail.internet

## Interface SharedInputStream

- All Known Implementing Classes:
    SharedByteArrayInputStream, SharedFileInputStream

      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 position in 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.

  Note that implementations of this interface must ensure that the `close` method does not close any underlying stream that might be shared by multiple instances of `SharedInputStream` until all shared instances have been closed.

  Since:
    JavaMail 1.2

- - ### Method Summary

    Methods
    Modifier and Type | Method and 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).

- - ### 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

Copyright © 2013 Oracle. All Rights Reserved.