Interface RandomAccessData
- All Known Implementing Classes:
RandomAccessDataFile
public interface RandomAccessData
Interface that provides read-only random access to some underlying data. Implementations must allow concurrent reads in a thread-safe manner.
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description InputStreamgetInputStream()Returns anInputStreamthat can be used to read the underlying data.longgetSize()Returns the size of the data.RandomAccessDatagetSubsection(long offset, long length)Returns a newRandomAccessDatafor a specific subsection of this data.byte[]read()Reads all the data and returns it as a byte array.byte[]read(long offset, long length)Reads thelengthbytes of data starting at the givenoffset.
Method Detail
getInputStream
InputStream getInputStream() throws IOException
Returns anInputStreamthat can be used to read the underlying data. The caller is responsible close the underlying stream.- Returns:
- a new input stream that can be used to read the underlying data.
- Throws:
IOException- if the stream cannot be opened
getSubsection
RandomAccessData getSubsection(long offset, long length)
Returns a newRandomAccessDatafor a specific subsection of this data.- Parameters:
offset- the offset of the subsectionlength- the length of the subsection- Returns:
- the subsection data
read
byte[] read() throws IOException
Reads all the data and returns it as a byte array.- Returns:
- the data
- Throws:
IOException- if the data cannot be read
read
byte[] read(long offset, long length) throws IOException
Reads thelengthbytes of data starting at the givenoffset.- Parameters:
offset- the offset from which data should be readlength- the number of bytes to be read- Returns:
- the data
- Throws:
IOException- if the data cannot be readIndexOutOfBoundsException- if offset is beyond the end of the file or subsectionEOFException- if offset plus length is greater than the length of the file or subsection
getSize
long getSize()
Returns the size of the data.- Returns:
- the size