| java.lang.Object java.io.InputStream java.io.FilterInputStream java.io.BufferedInputStream javax.mail.util.SharedFileInputStream
SharedFileInputStream | public class SharedFileInputStream extends BufferedInputStream implements SharedInputStream(Code) | | 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.
author: Bill Shannon since: JavaMail 1.4 |
Inner Class :static class SharedFile | |
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. |
Method Summary | |
public synchronized int | available() Returns the number of bytes that can be read from this input
stream without blocking. | public void | close() Closes this input stream and releases any system resources
associated with the stream. | protected void | finalize() Force this stream to close. | public long | getPosition() Return the current position in the InputStream, as an
offset from the beginning of the InputStream. | public synchronized void | mark(int readlimit) See the general contract of the mark
method of InputStream . | public boolean | markSupported() Tests if this input stream supports the mark
and reset methods. | 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). | public synchronized int | read() See the general contract of the read
method of InputStream . | public synchronized int | read(byte b, int off, int len) Reads bytes from this stream into the specified byte array,
starting at the given offset.
This method implements the general contract of the corresponding
java.io.InputStream.read(byte[]intint) read
method of the
java.io.InputStream class.
Parameters: b - destination buffer. Parameters: off - offset at which to start storing bytes. Parameters: len - maximum number of bytes to read. | public synchronized void | reset() 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. | public synchronized long | skip(long n) See the general contract of the skip
method of InputStream .
Parameters: n - the number of bytes to be skipped. |
bufpos | protected long bufpos(Code) | | The file offset that corresponds to the first byte in
the read buffer.
|
bufsize | protected int bufsize(Code) | | The normal size of the read buffer.
|
datalen | protected long datalen(Code) | | The amount of data in this subset of the file.
|
in | protected RandomAccessFile in(Code) | | The file containing the data.
Shared by all related SharedFileInputStreams.
|
start | protected long start(Code) | | The file offset of the start of data in this subset of the file.
|
SharedFileInputStream | public SharedFileInputStream(File file) throws IOException(Code) | | Creates a SharedFileInputStream
for the file.
Parameters: file - the file |
SharedFileInputStream | public SharedFileInputStream(String file) throws IOException(Code) | | Creates a SharedFileInputStream
for the named file
Parameters: file - the file |
SharedFileInputStream | public SharedFileInputStream(File file, int size) throws IOException(Code) | | Creates a SharedFileInputStream
with the specified buffer size.
Parameters: file - the file Parameters: size - the buffer size. exception: IllegalArgumentException - if size <= 0. |
SharedFileInputStream | public SharedFileInputStream(String file, int size) throws IOException(Code) | | Creates a SharedFileInputStream
with the specified buffer size.
Parameters: file - the file Parameters: size - the buffer size. exception: IllegalArgumentException - if size <= 0. |
available | public synchronized int available() throws IOException(Code) | | Returns the number of bytes that can be read from this input
stream without blocking.
the number of bytes that can be read from this inputstream without blocking. exception: IOException - if an I/O error occurs. |
close | public void close() throws IOException(Code) | | Closes this input stream and releases any system resources
associated with the stream.
exception: IOException - if an I/O error occurs. |
finalize | protected void finalize() throws Throwable(Code) | | Force this stream to close.
|
getPosition | public long getPosition()(Code) | | Return the current position in the InputStream, as an
offset from the beginning of the InputStream.
the current position |
mark | public synchronized void mark(int readlimit)(Code) | | See the general contract of the mark
method of InputStream .
Parameters: readlimit - the maximum limit of bytes that can be read beforethe mark position becomes invalid. See Also: SharedFileInputStream.reset() |
markSupported | public boolean markSupported()(Code) | | Tests if this input stream supports the mark
and reset methods. The markSupported
method of SharedFileInputStream returns
true .
a boolean indicating if this stream type supportsthe mark and reset methods. See Also: java.io.InputStream.mark(int) See Also: java.io.InputStream.reset |
newStream | public InputStream newStream(long start, long end)(Code) | | 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 Parameters: end - the ending position + 1 the new stream |
read | public synchronized int read() throws IOException(Code) | | See the general contract of the read
method of InputStream .
the next byte of data, or -1 if the end of thestream is reached. exception: IOException - if an I/O error occurs. |
read | public synchronized int read(byte b, int off, int len) throws IOException(Code) | | Reads bytes from this stream into the specified byte array,
starting at the given offset.
This method implements the general contract of the corresponding
java.io.InputStream.read(byte[]intint) read
method of the
java.io.InputStream class.
Parameters: b - destination buffer. Parameters: off - offset at which to start storing bytes. Parameters: len - maximum number of bytes to read. the number of bytes read, or -1 if the end ofthe stream has been reached. exception: IOException - if an I/O error occurs. |
reset | public synchronized void reset() throws IOException(Code) | | 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 .
exception: IOException - if this stream has not been marked orif the mark has been invalidated. See Also: SharedFileInputStream.mark(int) |
skip | public synchronized long skip(long n) throws IOException(Code) | | See the general contract of the skip
method of InputStream .
Parameters: n - the number of bytes to be skipped. the actual number of bytes skipped. exception: IOException - if an I/O error occurs. |
|
|