java.lang.Object
java.io.InputStream
ij.io.RandomAccessStream
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public final class RandomAccessStream
extends java.io.InputStream
This class uses a memory cache to allow seeking within
an InputStream. Based on the JAI MemoryCacheSeekableStream class.
Can also be constructed from a RandomAccessFile, which uses less
memory since the memory cache is not required.
-
Constructor Summary
Constructors Constructor Description RandomAccessStream(java.io.InputStream inputstream)
Constructs a RandomAccessStream from an InputStream.RandomAccessStream(java.io.RandomAccessFile ras)
Constructs a RandomAccessStream from an RandomAccessFile. -
Method Summary
Modifier and Type Method Description void
close()
int
getFilePointer()
long
getLongFilePointer()
int
read()
int
read(byte[] bytes, int off, int len)
double
readDouble()
float
readFloat()
void
readFully(byte[] bytes)
void
readFully(byte[] bytes, int len)
int
readInt()
long
readLong()
short
readShort()
void
seek(int loc)
void
seek(long loc)
-
Constructor Details
-
RandomAccessStream
public RandomAccessStream(java.io.InputStream inputstream)Constructs a RandomAccessStream from an InputStream. Seeking backwards is supported using a memory cache. -
RandomAccessStream
public RandomAccessStream(java.io.RandomAccessFile ras)Constructs a RandomAccessStream from an RandomAccessFile.
-
-
Method Details
-
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:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] bytes, int off, int len) throws java.io.IOException- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
readFully
public final void readFully(byte[] bytes) throws java.io.IOException- Throws:
java.io.IOException
-
readFully
public final void readFully(byte[] bytes, int len) 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 final int readInt() throws java.io.IOException- Throws:
java.io.IOException
-
readLong
public final long readLong() throws java.io.IOException- Throws:
java.io.IOException
-
readDouble
public final double readDouble() throws java.io.IOException- Throws:
java.io.IOException
-
readShort
public final short readShort() throws java.io.IOException- Throws:
java.io.IOException
-
readFloat
public final float readFloat() throws java.io.IOException- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.InputStream
- Throws:
java.io.IOException
-