| java.io.BufferedInputStream org.archive.io.RepositionableInputStream
RepositionableInputStream | public class RepositionableInputStream extends BufferedInputStream implements RepositionableStream(Code) | | Wrapper around an
InputStream to make a primitive Repositionable
stream. Uses a
BufferedInputStream . Calls mark on every read so
we'll remember at least the last thing read (You can only backup on the
last thing read -- not last 2 or 3 things read). Used by
GzippedInputStream when reading streams over a network. Wraps a
HTTP, etc., stream so we can back it up if needs be after the
GZIP inflater has done a fill of its full buffer though it only needed
the first few bytes to finish decompressing the current GZIP member.
TODO: More robust implementation. Tried to use the it.unimi.dsi.io
FastBufferdInputStream but relies on FileChannel ByteBuffers and if not
present -- as would be the case reading from a network stream, the main
application for this instance -- then it expects the underlying stream
implements RepositionableStream interface so chicken or egg problem.
author: stack |
Method Summary | |
protected boolean | isMarked() | public void | mark(int readlimit) | public void | position(long offset) | public long | position() | public int | read(byte[] b) | public synchronized int | read(byte[] b, int offset, int ct) | public int | read() | public void | reset() |
RepositionableInputStream | public RepositionableInputStream(InputStream in, int size)(Code) | | |
isMarked | protected boolean isMarked()(Code) | | |
mark | public void mark(int readlimit)(Code) | | |
position | public void position(long offset)(Code) | | |
position | public long position()(Code) | | |
read | public synchronized int read(byte[] b, int offset, int ct) throws IOException(Code) | | |
|
|