Package uk.ac.starlink.fits
Class BufferedRandomInput
- java.lang.Object
-
- uk.ac.starlink.fits.BufferedRandomInput
-
- All Implemented Interfaces:
BasicInput
public class BufferedRandomInput extends java.lang.Object implements BasicInput
BasicInput implementation based on a RandomAccessFile. Buffering of the underlying file is performed on the assumption that access will be largely sequential.- Since:
- 8 Nov 2017
- Author:
- Mark Taylor
-
-
Field Summary
Fields Modifier and Type Field Description static intDFLT_BUFSIZE
-
Constructor Summary
Constructors Constructor Description BufferedRandomInput(java.io.RandomAccessFile file, long offset0)Constructs a BufferedRandomInput with a default sized buffer.BufferedRandomInput(java.io.RandomAccessFile file, long offset0, int bufsize)Constructs a BufferedRandomInput with a buffer of specified size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Releases resources belonging to this object.longgetOffset()Returns the curent position in this stream (optional operation).booleanisRandom()Indicates whether this object supports random access.bytereadByte()Reads a byte from the stream.voidreadBytes(byte[] bbuf)Reads bytes into an array from the stream.doublereadDouble()Reads an 8-byte floating point value from the stream.floatreadFloat()Reads a 4-byte floating point value from the stream.intreadInt()Reads a 4-byte integer from the stream.longreadLong()Reads an 8-byte integer from the stream.shortreadShort()Reads a 2-byte integer from the stream.voidseek(long offset)Moves the current position of this stream to a given byte offset (optional operation).voidskip(long nbytes)Skips a given number of bytes forwards through the stream.
-
-
-
Constructor Detail
-
BufferedRandomInput
public BufferedRandomInput(java.io.RandomAccessFile file, long offset0) throws java.io.IOExceptionConstructs a BufferedRandomInput with a default sized buffer.- Parameters:
file- fileoffset0- offset into file of stream start- Throws:
java.io.IOException
-
BufferedRandomInput
public BufferedRandomInput(java.io.RandomAccessFile file, long offset0, int bufsize) throws java.io.IOExceptionConstructs a BufferedRandomInput with a buffer of specified size.- Parameters:
file- fileoffset0- offset into file of stream startbufsize- buffer size- Throws:
java.io.IOException
-
-
Method Detail
-
readByte
public byte readByte() throws java.io.IOExceptionDescription copied from interface:BasicInputReads a byte from the stream. The current position is advanced.- Specified by:
readBytein interfaceBasicInput- Returns:
- byte value
- Throws:
java.io.IOException
-
readShort
public short readShort() throws java.io.IOExceptionDescription copied from interface:BasicInputReads a 2-byte integer from the stream. The current position is advanced.- Specified by:
readShortin interfaceBasicInput- Returns:
- short value
- Throws:
java.io.IOException
-
readInt
public int readInt() throws java.io.IOExceptionDescription copied from interface:BasicInputReads a 4-byte integer from the stream. The current position is advanced.- Specified by:
readIntin interfaceBasicInput- Returns:
- int value
- Throws:
java.io.IOException
-
readLong
public long readLong() throws java.io.IOExceptionDescription copied from interface:BasicInputReads an 8-byte integer from the stream. The current position is advanced.- Specified by:
readLongin interfaceBasicInput- Returns:
- long value
- Throws:
java.io.IOException
-
readFloat
public float readFloat() throws java.io.IOExceptionDescription copied from interface:BasicInputReads a 4-byte floating point value from the stream. The current position is advanced.- Specified by:
readFloatin interfaceBasicInput- Returns:
- float value
- Throws:
java.io.IOException
-
readDouble
public double readDouble() throws java.io.IOExceptionDescription copied from interface:BasicInputReads an 8-byte floating point value from the stream. The current position is advanced.- Specified by:
readDoublein interfaceBasicInput- Returns:
- double value
- Throws:
java.io.IOException
-
readBytes
public void readBytes(byte[] bbuf) throws java.io.IOExceptionDescription copied from interface:BasicInputReads bytes into an array from the stream. The current position is advanced.- Specified by:
readBytesin interfaceBasicInput- Parameters:
bbuf- array into which the bytes are read; the number of bytes read is the length of the array- Throws:
java.io.IOException
-
isRandom
public boolean isRandom()
Description copied from interface:BasicInputIndicates whether this object supports random access. The seek and getOffset methods may only be called if this method returns true.- Specified by:
isRandomin interfaceBasicInput- Returns:
- true iff random access is supported
-
skip
public void skip(long nbytes) throws java.io.IOExceptionDescription copied from interface:BasicInputSkips a given number of bytes forwards through the stream. An exception is thrown if there are not enough bytes left.- Specified by:
skipin interfaceBasicInput- Parameters:
nbytes- number of bytes to skip- Throws:
java.io.IOException
-
getOffset
public long getOffset()
Description copied from interface:BasicInputReturns the curent position in this stream (optional operation).- Specified by:
getOffsetin interfaceBasicInput
-
seek
public void seek(long offset) throws java.io.IOExceptionDescription copied from interface:BasicInputMoves the current position of this stream to a given byte offset (optional operation).- Specified by:
seekin interfaceBasicInput- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOExceptionDescription copied from interface:BasicInputReleases resources belonging to this object. Attempts to use it after a call to this method result in undefined behaviour.- Specified by:
closein interfaceBasicInput- Throws:
java.io.IOException
-
-