Package gov.nih.mipav.model.file
Class MetadataExtractor.RandomAccessStreamReader
java.lang.Object
gov.nih.mipav.model.file.MetadataExtractor.RandomAccessReader
gov.nih.mipav.model.file.MetadataExtractor.RandomAccessStreamReader
- Enclosing class:
MetadataExtractor
public class MetadataExtractor.RandomAccessStreamReader
extends MetadataExtractor.RandomAccessReader
- Author:
- Drew Noakes https://drewnoakes.com
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final intprivate final ArrayList<byte[]> private booleanprivate final InputStreamprivate longstatic final int -
Constructor Summary
ConstructorsConstructorDescriptionRandomAccessStreamReader(InputStream stream) RandomAccessStreamReader(InputStream stream, int chunkLength) RandomAccessStreamReader(InputStream stream, int chunkLength, long streamLength) -
Method Summary
Modifier and TypeMethodDescriptionbytegetByte(int index) Gets the byte value at the specified byteindex.byte[]getBytes(int index, int count) Returns the required number of bytes from the specified index from the underlying source.longReads to the end of the stream, in order to determine the total number of bytes.protected booleanisValidIndex(int index, int bytesRequested) inttoUnshiftedOffset(int localOffset) protected voidvalidateIndex(int index, int bytesRequested) Ensures that the buffered bytes extend to cover the specified index.Methods inherited from class gov.nih.mipav.model.file.MetadataExtractor.RandomAccessReader
getBit, getDouble64, getFloat32, getInt16, getInt24, getInt32, getInt64, getInt8, getNullTerminatedBytes, getNullTerminatedString, getNullTerminatedStringValue, getS15Fixed16, getString, getString, getStringValue, getUInt16, getUInt32, getUInt8, isMotorolaByteOrder, setMotorolaByteOrder
-
Field Details
-
DEFAULT_CHUNK_LENGTH
public static final int DEFAULT_CHUNK_LENGTH- See Also:
-
_stream
-
_chunkLength
private final int _chunkLength -
_chunks
-
_isStreamFinished
private boolean _isStreamFinished -
_streamLength
private long _streamLength
-
-
Constructor Details
-
RandomAccessStreamReader
-
RandomAccessStreamReader
-
RandomAccessStreamReader
-
-
Method Details
-
getLength
Reads to the end of the stream, in order to determine the total number of bytes. In general, this is not a good idea for this implementation ofMetadataExtractor.RandomAccessReader.- Specified by:
getLengthin classMetadataExtractor.RandomAccessReader- Returns:
- the length of the data source, in bytes.
- Throws:
IOException
-
validateIndex
Ensures that the buffered bytes extend to cover the specified index. If not, an attempt is made to read to that point.If the stream ends before the point is reached, a
MetadataExtractor.BufferBoundsExceptionis raised.- Specified by:
validateIndexin classMetadataExtractor.RandomAccessReader- Parameters:
index- the index from which the required bytes startbytesRequested- the number of bytes which are required- Throws:
MetadataExtractor.BufferBoundsException- if the stream ends before the required number of bytes are acquiredIOException- if the stream ends before the required number of bytes are acquired
-
isValidIndex
- Specified by:
isValidIndexin classMetadataExtractor.RandomAccessReader- Throws:
IOException
-
toUnshiftedOffset
public int toUnshiftedOffset(int localOffset) - Specified by:
toUnshiftedOffsetin classMetadataExtractor.RandomAccessReader
-
getByte
Description copied from class:MetadataExtractor.RandomAccessReaderGets the byte value at the specified byteindex.Implementations should not perform any bounds checking in this method. That should be performed in
validateIndexandisValidIndex.- Specified by:
getBytein classMetadataExtractor.RandomAccessReader- Parameters:
index- The index from which to read the byte- Returns:
- The read byte value
- Throws:
IOException- if the byte is unable to be read
-
getBytes
Description copied from class:MetadataExtractor.RandomAccessReaderReturns the required number of bytes from the specified index from the underlying source.- Specified by:
getBytesin classMetadataExtractor.RandomAccessReader- Parameters:
index- The index from which the bytes begins in the underlying sourcecount- The number of bytes to be returned- Returns:
- The requested bytes
- Throws:
IOException- if the byte is unable to be read
-