Class BinaryInputStream
- All Implemented Interfaces:
Closeable,AutoCloseable
- Direct Known Subclasses:
DicomInputStream
A class that extends FilterInputStream by adding
the concept of little and big endian binary value encoding, and supplies functions
for reading various sized integer and floating point words.
- See Also:
-
Field Summary
Fields inherited from class java.io.FilterInputStream
in -
Constructor Summary
ConstructorsConstructorDescriptionBinaryInputStream(File file, boolean big) Construct a byte ordered stream from the supplied file.BinaryInputStream(InputStream i, boolean big) Construct a byte ordered stream from the supplied stream. -
Method Summary
Modifier and TypeMethodDescriptiongetFile()Get the file associated with this stream.booleanIs the stream byte order big endian ?booleanIs the stream byte order little endian ?static voidFor testing.final voidreadComplexDouble(double[] freal, double[] fimaginary, int len) Read interleaved complex floating point 64 bit value pairs into real and imaginary arrays.final voidreadComplexFloat(float[] freal, float[] fimaginary, int len) Read interleaved complex floating point 32 bit value pairs into real and imaginary arrays.final doubleRead one floating point 64 bit value.final voidreadDouble(double[] f, int len) Read an array of floating point 64 bit values.final floatRead one floating point 32 bit value.final voidreadFloat(float[] f, int len) Read an array of floating point 32 bit values.voidreadInsistently(byte[] b, int offset, int length) Read as many bytes as requested, unless an exception occurs.final intRead one signed integer 16 bit value.final intRead one signed integer 32 bit value.final longRead one signed integer 64 bit value.final intRead one unsigned integer 16 bit value.final voidreadUnsigned16(short[] w, int len) Read an array of unsigned integer 16 bit values.final voidreadUnsigned16(short[] w, int offset, int len) Read an array of unsigned integer 16 bit values.final longRead one unsigned integer 32 bit value.final voidreadUnsigned32(int[] w, int len) Read an array of unsigned integer 32 bit values.final voidreadUnsigned32(int[] w, int offset, int len) Read an array of unsigned integer 32 bit values.final longRead one unsigned integer 64 bit value.final voidreadUnsigned64(long[] w, int len) Read an array of unsigned integer 64 bit values.final voidreadUnsigned64(long[] w, int offset, int len) Read an array of unsigned integer 64 bit values.final intRead one unsigned integer 8 bit value.voidSet the stream byte order to big endian.voidsetEndian(boolean big) Set the stream byte order to that specified.voidSet the file associated with this stream.voidSet the stream byte order to little endian.voidskipInsistently(long length) Skip as many bytes as requested, unless an exception occurs.Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported, read, read, read, reset, skipMethods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Constructor Details
-
BinaryInputStream
Construct a byte ordered stream from the supplied file.
The byte order may be changed later.
- Parameters:
file- the file to read frombig- true if big endian, false if little endian- Throws:
FileNotFoundException- if file is not found
-
BinaryInputStream
Construct a byte ordered stream from the supplied stream.
The byte order may be changed later.
- Parameters:
i- the input stream to read frombig- true if big endian, false if little endian
-
-
Method Details
-
getFile
Get the file associated with this stream.
- Returns:
- file the file, or null if not a file input stream
-
setFile
Set the file associated with this stream.
This may be used if constructed with a constructor that does not supply a
Fileparameter, e.g., has been indirected through aBufferedInputStream.- Parameters:
file- the file associated with this stream, or null if not a file input stream
-
isBigEndian
public boolean isBigEndian()Is the stream byte order big endian ?
- Returns:
- true if big endian, false if little endian
-
isLittleEndian
public boolean isLittleEndian()Is the stream byte order little endian ?
- Returns:
- true if little endian, false if big endian
-
setBigEndian
public void setBigEndian()Set the stream byte order to big endian.
-
setLittleEndian
public void setLittleEndian()Set the stream byte order to little endian.
-
setEndian
public void setEndian(boolean big) Set the stream byte order to that specified.
- Parameters:
big- true if to set to big endian, false if little endian
-
readInsistently
Read as many bytes as requested, unless an exception occurs.
- Parameters:
b- buffer to read intooffset- offset (from 0) in buffer to read intolength- number of bytes to read (no more and no less)- Throws:
IOException- if an I/O error occurs
-
skipInsistently
Skip as many bytes as requested, unless an exception occurs.
- Parameters:
length- number of bytes to read (no more and no less)- Throws:
IOException- if an I/O error occurs
-
readUnsigned8
Read one unsigned integer 8 bit value.
- Returns:
- an int containing an unsigned value
- Throws:
IOException- if an I/O error occurs
-
readUnsigned16
Read one unsigned integer 16 bit value.
- Returns:
- an int containing an unsigned value
- Throws:
IOException- if an I/O error occurs
-
readSigned16
Read one signed integer 16 bit value.
- Returns:
- an int containing an unsigned value
- Throws:
IOException- if an I/O error occurs
-
readUnsigned32
Read one unsigned integer 32 bit value.
- Returns:
- a long containing an unsigned value
- Throws:
IOException- if an I/O error occurs
-
readSigned32
Read one signed integer 32 bit value.
- Returns:
- an int containing an signed value
- Throws:
IOException- if an I/O error occurs
-
readUnsigned64
Read one unsigned integer 64 bit value.
- Returns:
- a long containing an unsigned value
- Throws:
IOException- if an I/O error occurs
-
readSigned64
Read one signed integer 64 bit value.
- Returns:
- a long containing an signed value
- Throws:
IOException- if an I/O error occurs
-
readFloat
Read one floating point 32 bit value.
- Returns:
- a float value
- Throws:
IOException- if an I/O error occurs
-
readDouble
Read one floating point 64 bit value.
- Returns:
- a double value
- Throws:
IOException- if an I/O error occurs
-
readUnsigned16
Read an array of unsigned integer 16 bit values.
- Parameters:
w- an array of sufficient size in which to return the values readlen- the number of 16 bit values to read- Throws:
IOException- if an I/O error occurs
-
readUnsigned16
Read an array of unsigned integer 16 bit values.
- Parameters:
w- an array of sufficient size in which to return the values readoffset- the offset in the array at which to begin storing valueslen- the number of 16 bit values to read- Throws:
IOException- if an I/O error occurs
-
readUnsigned32
Read an array of unsigned integer 32 bit values.
- Parameters:
w- an array of sufficient size in which to return the values readlen- the number of 32 bit values to read- Throws:
IOException- if an I/O error occurs
-
readUnsigned32
Read an array of unsigned integer 32 bit values.
- Parameters:
w- an array of sufficient size in which to return the values readoffset- the offset in the array at which to begin storing valueslen- the number of 32 bit values to read- Throws:
IOException- if an I/O error occurs
-
readUnsigned64
Read an array of unsigned integer 64 bit values.
- Parameters:
w- an array of sufficient size in which to return the values readlen- the number of 64 bit values to read- Throws:
IOException- if an I/O error occurs
-
readUnsigned64
Read an array of unsigned integer 64 bit values.
- Parameters:
w- an array of sufficient size in which to return the values readoffset- the offset in the array at which to begin storing valueslen- the number of 64 bit values to read- Throws:
IOException- if an I/O error occurs
-
readFloat
Read an array of floating point 32 bit values.
- Parameters:
f- an array of sufficient size in which to return the values readlen- the number of 32 bit values to read- Throws:
IOException- if an I/O error occurs
-
readComplexFloat
Read interleaved complex floating point 32 bit value pairs into real and imaginary arrays.
- Parameters:
freal- an array of sufficient size in which to return the real values read, may be null if don't want real valuesfimaginary- an array of sufficient size in which to return the real values read, may be null if don't want imaginary valueslen- the number of 32 bit values to read- Throws:
IOException- if an I/O error occurs
-
readDouble
Read an array of floating point 64 bit values.
- Parameters:
f- an array of sufficient size in which to return the values readlen- the number of 64 bit values to read- Throws:
IOException- if an I/O error occurs
-
readComplexDouble
public final void readComplexDouble(double[] freal, double[] fimaginary, int len) throws IOException Read interleaved complex floating point 64 bit value pairs into real and imaginary arrays.
- Parameters:
freal- an array of sufficient size in which to return the real values read, may be null if don't want real valuesfimaginary- an array of sufficient size in which to return the real values read, may be null if don't want imaginary valueslen- the number of 64 bit values to read- Throws:
IOException- if an I/O error occurs
-
main
For testing.
- Parameters:
arg- file to read from
-