public abstract class SeekableInputStream extends InputStream
Constructor and Description |
---|
SeekableInputStream() |
Modifier and Type | Method and Description |
---|---|
abstract long |
length()
Gets the size of the stream.
|
abstract long |
position()
Gets the current position in the stream.
|
abstract void |
seek(long pos)
Seeks to the specified absolute position in the stream.
|
long |
skip(long n)
Seeks
n bytes forward in this stream. |
available, close, mark, markSupported, read, read, read, reset
public long skip(long n) throws IOException
n
bytes forward in this stream.
This will not seek past the end of the file. If the current position
is already at or past the end of the file, this doesn't seek at all
and returns 0
. Otherwise, if skipping n
bytes
would cause the position to exceed the stream size, this will do
equivalent of seek(length())
and the return value will
be adjusted accordingly.
If n
is negative, the position isn't changed and
the return value is 0
. It doesn't seek backward
because it would conflict with the specification of
InputStream.skip
.
skip
in class InputStream
0
if n
is negative,
less than n
if skipping n
bytes would seek past the end of the file,
n
otherwiseIOException
- might be thrown by seek(long)
public abstract long length() throws IOException
IOException
public abstract long position() throws IOException
IOException
public abstract void seek(long pos) throws IOException
Seeking past the end of the file should be supported by the subclasses
unless there is a good reason to do otherwise. If one has seeked
past the end of the stream, read
will return
-1
to indicate end of stream.
pos
- new read position in the streamIOException
- if pos
is negative or if
a stream-specific I/O error occursCopyright © 2016 Internet2. All rights reserved.