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.boolean
Is the stream byte order big endian ?boolean
Is the stream byte order little endian ?static void
For testing.final void
readComplexDouble
(double[] freal, double[] fimaginary, int len) Read interleaved complex floating point 64 bit value pairs into real and imaginary arrays.final void
readComplexFloat
(float[] freal, float[] fimaginary, int len) Read interleaved complex floating point 32 bit value pairs into real and imaginary arrays.final double
Read one floating point 64 bit value.final void
readDouble
(double[] f, int len) Read an array of floating point 64 bit values.final float
Read one floating point 32 bit value.final void
readFloat
(float[] f, int len) Read an array of floating point 32 bit values.void
readInsistently
(byte[] b, int offset, int length) Read as many bytes as requested, unless an exception occurs.final int
Read one signed integer 16 bit value.final int
Read one signed integer 32 bit value.final long
Read one signed integer 64 bit value.final int
Read one unsigned integer 16 bit value.final void
readUnsigned16
(short[] w, int len) Read an array of unsigned integer 16 bit values.final void
readUnsigned16
(short[] w, int offset, int len) Read an array of unsigned integer 16 bit values.final long
Read one unsigned integer 32 bit value.final void
readUnsigned32
(int[] w, int len) Read an array of unsigned integer 32 bit values.final void
readUnsigned32
(int[] w, int offset, int len) Read an array of unsigned integer 32 bit values.final long
Read one unsigned integer 64 bit value.final void
readUnsigned64
(long[] w, int len) Read an array of unsigned integer 64 bit values.final void
readUnsigned64
(long[] w, int offset, int len) Read an array of unsigned integer 64 bit values.final int
Read one unsigned integer 8 bit value.void
Set the stream byte order to big endian.void
setEndian
(boolean big) Set the stream byte order to that specified.void
Set the file associated with this stream.void
Set the stream byte order to little endian.void
skipInsistently
(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, skip
Methods 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
File
parameter, 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
-