This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.


javax.mail.util
class SharedFileInputStream

javax.mail.util.SharedFileInputStream
All Implemented Interfaces:
SharedInputStream

public class SharedFileInputStream
extends 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.

Note that when the SharedFileInputStream is closed, all streams created with the newStream method are also closed. This allows the creator of the SharedFileInputStream object to control access to the underlying file and ensure that it is closed when needed, to avoid leaking file descriptors. Note also that this behavior contradicts the requirements of SharedInputStream and may change in a future release.


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 RandomAccessFile in
          The file containing the data.
protected long start
          The file offset of the start of data in this subset of the file.
 
Constructor Summary

          Creates a SharedFileInputStream for the file.
SharedFileInputStream(File file, int size)

          Creates a SharedFileInputStream with the specified buffer size.

          Creates a SharedFileInputStream for the named file
SharedFileInputStream(String file, int size)

          Creates a SharedFileInputStream with the specified buffer size.
 
Method Summary
 int

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

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

          Force this stream to close.
 long

          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

          Tests if this input stream supports the mark and reset methods.
 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

          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

          See the general contract of the reset method of InputStream.
 long
skip(long n)

          See the general contract of the skip method of InputStream.
 

Field Detail

bufpos

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

bufsize

protected int bufsize
The normal size of the read buffer.

datalen

protected long datalen
The amount of data in this subset of the file.

in

protected RandomAccessFile in
The file containing the data. Shared by all related SharedFileInputStreams.

start

protected long start
The file offset of the start of data in this subset of the file.
Constructor Detail

SharedFileInputStream

public SharedFileInputStream(File file)
                      throws IOException
Creates a SharedFileInputStream for the file.

Parameters:
file - the file
Throws:
IOException

SharedFileInputStream

public SharedFileInputStream(File file,
                             int size)
                      throws IOException
Creates a SharedFileInputStream with the specified buffer size.

Parameters:
file - the file
size - the buffer size.
Throws:
IOException

SharedFileInputStream

public SharedFileInputStream(String file)
                      throws IOException
Creates a SharedFileInputStream for the named file

Parameters:
file - the file
Throws:
IOException

SharedFileInputStream

public SharedFileInputStream(String file,
                             int size)
                      throws IOException
Creates a SharedFileInputStream with the specified buffer size.

Parameters:
file - the file
size - the buffer size.
Throws:
IOException
Method Detail

available

public synchronized int available()
                           throws IOException
Returns the number of bytes that can be read from this input stream without blocking.

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

close

public void close()
           throws IOException
Closes this input stream and releases any system resources associated with the stream.

Overrides:
close in class BufferedInputStream
Throws:
IOException - if an I/O error occurs.

finalize

protected void finalize()
                 throws Throwable
Force this stream to close.

Overrides:
finalize in class Object
Throws:
Throwable

getPosition

public long getPosition()
Return the current position in the InputStream, as an offset from the beginning of the InputStream.

Returns:
the current position

mark

public synchronized void mark(int readlimit)
See the general contract of the mark method of InputStream.

Overrides:
mark in class BufferedInputStream
Parameters:
readlimit - the maximum limit of bytes that can be read before the mark position becomes invalid.

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 BufferedInputStream
Returns:
a boolean indicating if this stream type supports the mark and reset methods.

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.

Parameters:
start - the starting position
end - the ending position + 1
Returns:
the new stream

read

public synchronized int read()
                      throws IOException
See the general contract of the read method of InputStream.

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

read

public synchronized int read(byte[] b,
                             int off,
                             int len)
                      throws 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 {@link java.io.InputStream#read(byte[], int, int) read} method of the {@link java.io.InputStream} class.

Overrides:
read in class 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:
IOException - if an I/O error occurs.

reset

public synchronized void reset()
                        throws 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 BufferedInputStream
Throws:
IOException - if this stream has not been marked or if the mark has been invalidated.

skip

public synchronized long skip(long n)
                       throws IOException
See the general contract of the skip method of InputStream.

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


This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.
This page displays the Jadeite version of the documention. The official Sun™ documentation can be found here at http://java.sun.com/products/javamail/javadocs/index.html.