Package com.github.junrar.io
Class RandomAccessInputStream
- java.lang.Object
-
- java.io.InputStream
-
- com.github.junrar.io.RandomAccessInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public final class RandomAccessInputStream extends java.io.InputStreamThis is a class that uses a memory cache to allow seeking within an InputStream. Based on the JAI MemoryCacheSeekableStream class.
-
-
Field Summary
Fields Modifier and Type Field Description private static intBLOCK_MASKprivate static intBLOCK_SHIFTprivate static intBLOCK_SIZEprivate java.util.Vectordataprivate booleanfoundEOSprivate longlengthprivate longpointerprivate java.io.InputStreamsrc
-
Constructor Summary
Constructors Constructor Description RandomAccessInputStream(java.io.InputStream inputstream)Constructs a RandomAccessStream from an InputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()intgetFilePointer()longgetLongFilePointer()intread()intread(byte[] bytes, int off, int len)doublereadDouble()floatreadFloat()voidreadFully(byte[] bytes)voidreadFully(byte[] bytes, int len)intreadInt()longreadLong()shortreadShort()private longreadUntil(long l)voidseek(int loc)voidseek(long loc)
-
-
-
Field Detail
-
BLOCK_SIZE
private static final int BLOCK_SIZE
- See Also:
- Constant Field Values
-
BLOCK_MASK
private static final int BLOCK_MASK
- See Also:
- Constant Field Values
-
BLOCK_SHIFT
private static final int BLOCK_SHIFT
- See Also:
- Constant Field Values
-
src
private final java.io.InputStream src
-
pointer
private long pointer
-
data
private final java.util.Vector data
-
length
private long length
-
foundEOS
private boolean foundEOS
-
-
Method Detail
-
getFilePointer
public int getFilePointer() throws java.io.IOException- Throws:
java.io.IOException
-
getLongFilePointer
public long getLongFilePointer() throws java.io.IOException- Throws:
java.io.IOException
-
read
public int read() throws java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] bytes, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
readFully
public void readFully(byte[] bytes) throws java.io.IOException- Throws:
java.io.IOException
-
readFully
public void readFully(byte[] bytes, int len) throws java.io.IOException- Throws:
java.io.IOException
-
readUntil
private long readUntil(long l) throws java.io.IOException- Throws:
java.io.IOException
-
seek
public void seek(long loc) throws java.io.IOException- Throws:
java.io.IOException
-
seek
public void seek(int loc) throws java.io.IOException- Throws:
java.io.IOException
-
readInt
public int readInt() throws java.io.IOException- Throws:
java.io.IOException
-
readLong
public long readLong() throws java.io.IOException- Throws:
java.io.IOException
-
readDouble
public double readDouble() throws java.io.IOException- Throws:
java.io.IOException
-
readShort
public short readShort() throws java.io.IOException- Throws:
java.io.IOException
-
readFloat
public float readFloat() throws java.io.IOException- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.InputStream- Throws:
java.io.IOException
-
-