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 InputStream
getInputStream()
Returns anInputStream
that can be used to read the underlying data.long
getSize()
Returns the size of the data.RandomAccessData
getSubsection(long offset, long length)
Returns a newRandomAccessData
for 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 thelength
bytes of data starting at the givenoffset
.
Method Detail
getInputStream
InputStream getInputStream() throws IOException
Returns anInputStream
that 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 newRandomAccessData
for 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 thelength
bytes 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