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.
- Since:
 - 1.0.0
 - Author:
 - Phillip Webb
 
- 
Method Summary
Modifier and TypeMethodDescriptionReturns anInputStreamthat can be used to read the underlying data.longgetSize()Returns the size of the data.getSubsection(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 Details
- 
getInputStream
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
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
Reads all the data and returns it as a byte array.- Returns:
 - the data
 - Throws:
 IOException- if the data cannot be read
 - 
read
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
 
 
 -