Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.mail.util
Class SharedFileInputStream

    java.lang.Object
      java.io.InputStream
          java.io.FilterInputStream
              java.io.BufferedInputStream
                  javax.mail.util.SharedFileInputStream

All Implemented Interfaces:
  java.io.Closeable, SharedInputStream

    public class SharedFileInputStream

extends java.io.BufferedInputStream
implements SharedInputStream

A `SharedFileInputStream` is a `BufferedInputStream` that buffers data from the file and supports the `mark` and `reset` methods. It also supports the `newStream` method that allows you to create other streams that represent subsets of the file. A `RandomAccessFile` object is used to access the file data.

Since:
  JavaMail 1.4

Field Summary
`protected long` | `bufpos` The file offset that corresponds to the first byte in the read buffer.
`protected int` | `bufsize` The normal size of the read buffer.
`protected long` | `datalen` The amount of data in this subset of the file.
`protected java.io.RandomAccessFile` | `in` The file containing the data.
`protected long` | `start` The file offset of the start of data in this subset of the file.

Fields inherited from class java.io.BufferedInputStream
`buf, count, marklimit, markpos, pos`

Constructor Summary
`SharedFileInputStream(java.io.File file)` Creates a `SharedFileInputStream` for the file.
`SharedFileInputStream(java.io.File file, int size)` Creates a `SharedFileInputStream` with the specified buffer size.
`SharedFileInputStream(java.lang.String file)` Creates a `SharedFileInputStream` for the named file
`SharedFileInputStream(java.lang.String file, int size)` Creates a `SharedFileInputStream` with the specified buffer size.

Method Summary
`int` | `available()` Returns the number of bytes that can be read from this input stream without blocking.
`void` | `close()` Closes this input stream and releases any system resources associated with the stream.
`protected void` | `finalize()` Force this stream to close.
`long` | `getPosition()` Return the current position in the InputStream, as an offset from the beginning of the InputStream.
`void` | `mark(int readlimit)` See the general contract of the `mark` method of `InputStream`.
`boolean` | `markSupported()` Tests if this input stream supports the `mark` and `reset` methods.
`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).
`int` | `read()` See the general contract of the `read` method of `InputStream`.
`int` | `read(byte[] b, int off, int len)` Reads bytes from this stream into the specified byte array, starting at the given offset.
`void` | `reset()` See the general contract of the `reset` method of `InputStream`.
`long` | `skip(long n)` See the general contract of the `skip` method of `InputStream`.

Methods inherited from class java.io.FilterInputStream
`read`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### in

    protected java.io.RandomAccessFile in

  The file containing the data. Shared by all related SharedFileInputStreams.

### bufsize

    protected int bufsize

  The normal size of the read buffer.

### bufpos

    protected long bufpos

  The file offset that corresponds to the first byte in the read buffer.

### start

    protected long start

  The file offset of the start of data in this subset of the file.

### datalen

    protected long datalen

  The amount of data in this subset of the file.

Constructor Detail

### SharedFileInputStream

    public SharedFileInputStream(java.io.File file)
                          throws java.io.IOException

  Creates a `SharedFileInputStream` for the file.

  Parameters:
    `file` - the file
  Throws:
    `java.io.IOException`

### SharedFileInputStream

    public SharedFileInputStream(java.lang.String file)
                          throws java.io.IOException

  Creates a `SharedFileInputStream` for the named file

  Parameters:
    `file` - the file
  Throws:
    `java.io.IOException`

### SharedFileInputStream

    public SharedFileInputStream(java.io.File file,
                                 int size)
                          throws java.io.IOException

  Creates a `SharedFileInputStream` with the specified buffer size.

  Parameters:
    `file` - the file
    `size` - the buffer size.
  Throws:
    `java.lang.IllegalArgumentException` - if size <= 0.
    `java.io.IOException`

### SharedFileInputStream

    public SharedFileInputStream(java.lang.String file,
                                 int size)
                          throws java.io.IOException

  Creates a `SharedFileInputStream` with the specified buffer size.

  Parameters:
    `file` - the file
    `size` - the buffer size.
  Throws:
    `java.lang.IllegalArgumentException` - if size <= 0.
    `java.io.IOException`

Method Detail

### read

    public int read()
             throws java.io.IOException

  See the general contract of the `read` method of `InputStream`.

  Overrides:
    `read` in class `java.io.BufferedInputStream`
  Returns:
    the next byte of data, or `-1` if the end of the stream is reached.
  Throws:
    `java.io.IOException` - if an I/O error occurs.

### read

    public int read(byte[] b,
                    int off,
                    int len)
             throws java.io.IOException

  Reads bytes from this stream into the specified byte array, starting at the given offset.

  This method implements the general contract of the corresponding ``read`` method of the ``InputStream`` class.

  Overrides:
    `read` in class `java.io.BufferedInputStream`
  Parameters:
    `b` - destination buffer.
    `off` - offset at which to start storing bytes.
    `len` - maximum number of bytes to read.
  Returns:
    the number of bytes read, or `-1` if the end of the stream has been reached.
  Throws:
    `java.io.IOException` - if an I/O error occurs.

### skip

    public long skip(long n)
              throws java.io.IOException

  See the general contract of the `skip` method of `InputStream`.

  Overrides:
    `skip` in class `java.io.BufferedInputStream`
  Parameters:
    `n` - the number of bytes to be skipped.
  Returns:
    the actual number of bytes skipped.
  Throws:
    `java.io.IOException` - if an I/O error occurs.

### available

    public int available()
                  throws java.io.IOException

  Returns the number of bytes that can be read from this input stream without blocking.

  Overrides:
    `available` in class `java.io.BufferedInputStream`
  Returns:
    the number of bytes that can be read from this input stream without blocking.
  Throws:
    `java.io.IOException` - if an I/O error occurs.

### mark

    public void mark(int readlimit)

  See the general contract of the `mark` method of `InputStream`.

  Overrides:
    `mark` in class `java.io.BufferedInputStream`
  Parameters:
    `readlimit` - the maximum limit of bytes that can be read before the mark position becomes invalid.
  See Also:
    `reset()`

### reset

    public void reset()
               throws java.io.IOException

  See the general contract of the `reset` method of `InputStream`.

  If `markpos` is `-1` (no mark has been set or the mark has been invalidated), an `IOException` is thrown. Otherwise, `pos` is set equal to `markpos`.

  Overrides:
    `reset` in class `java.io.BufferedInputStream`
  Throws:
    `java.io.IOException` - if this stream has not been marked or if the mark has been invalidated.
  See Also:
    `mark(int)`

### markSupported

    public boolean markSupported()

  Tests if this input stream supports the `mark` and `reset` methods. The `markSupported` method of `SharedFileInputStream` returns `true`.

  Overrides:
    `markSupported` in class `java.io.BufferedInputStream`
  Returns:
    a `boolean` indicating if this stream type supports the `mark` and `reset` methods.
  See Also:
    `InputStream.mark(int)`, `InputStream.reset()`

### close

    public void close()
               throws java.io.IOException

  Closes this input stream and releases any system resources associated with the stream.

  Specified by:
    `close` in interface `java.io.Closeable`
  Overrides:
    `close` in class `java.io.BufferedInputStream`
  Throws:
    `java.io.IOException` - if an I/O error occurs.

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

### finalize

    protected void finalize()
                     throws java.lang.Throwable

  Force this stream to close.

  Overrides:
    `finalize` in class `java.lang.Object`
  Throws:
    `java.lang.Throwable`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD