Class BinaryOutputStream
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
- Direct Known Subclasses:
DicomOutputStream
A class that extends FilterOutputStream
by adding
the concept of little and big endian binary value encoding, and supplies functions
for writing various sized integer and floating point words.
- See Also:
-
Field Summary
FieldsFields inherited from class java.io.FilterOutputStream
out
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlong
Get the byte offset where the next byte will be written.boolean
Is the stream byte order big endian ?boolean
Is the stream byte order little endian ?protected void
localInit
(boolean big) static void
For testing.void
Set the stream byte order to big endian.void
setEndian
(boolean big) Set the stream byte order to that specified.void
Set the stream byte order to little endian.void
write
(byte[] b) Writesb.length
bytes to this output stream.void
write
(byte[] b, int off, int len) Writeslen
bytes from the specified byte array starting at offsetoff
to this output stream.void
write
(int b) Writes the specifiedbyte
to this output stream.final void
writeDouble
(double value) Write one floating point 64 bit value.final void
writeDouble
(double[] f, int len) Write an array of floating point 64 bit values.final void
writeFloat
(float value) Write one floating point 32 bit value.final void
writeFloat
(float[] f, int len) Write an array of floating point 32 bit values.final void
writeSigned16
(int v) Write one signed integer 16 bit value.final void
writeSigned32
(long v) Write one signed integer 32 bit value.final void
writeSigned64
(long v) Write one signed integer 64 bit value.final void
writeUnsigned16
(int v) Write one unsigned integer 16 bit value.final void
writeUnsigned16
(short[] w, int len) Write an array of unsigned integer 16 bit values.final void
writeUnsigned32
(int[] w, int len) Write an array of unsigned integer 32 bit values.final void
writeUnsigned32
(long v) Write one unsigned integer 32 bit value.final void
writeUnsigned64
(long v) Write one unsigned integer 64 bit value.final void
writeUnsigned64
(long[] w, int len) Write an array of unsigned integer 64 bit values.final void
writeUnsigned8
(int v) Write one unsigned integer 8 bit value.Methods inherited from class java.io.FilterOutputStream
close, flush
Methods inherited from class java.io.OutputStream
nullOutputStream
-
Field Details
-
byteOffset
protected long byteOffset
-
-
Constructor Details
-
BinaryOutputStream
- Parameters:
o
- the output streambig
- true if big endian, false if little endian
-
-
Method Details
-
getByteOffset
public long getByteOffset()Get the byte offset where the next byte will be written.
Will be zero at the start of the file.
- Returns:
- the byte offset
-
localInit
protected void localInit(boolean big) - Parameters:
big
- true if big endian, false if little endian
-
write
Writeslen
bytes from the specified byte array starting at offsetoff
to this output stream.The
write
method ofBinaryOutputStream
calls the corresponding multi-byte write method of one argument of the.OutputStream
supplied in the constructor, and overrides the default use of multiple calls to the single-byte write method that is the behavior ofFilterOutputStream
.The exceptions thrown are whatever is thrown by the
OutputStream
write method.- Overrides:
write
in classFilterOutputStream
- Parameters:
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.- Throws:
IOException
- if an I/O error occurs.
-
write
Writes the specifiedbyte
to this output stream.- Overrides:
write
in classFilterOutputStream
- Parameters:
b
- thebyte
.- Throws:
IOException
- if an I/O error occurs.
-
write
Writesb.length
bytes to this output stream.- Overrides:
write
in classFilterOutputStream
- Parameters:
b
- the data to be written.- Throws:
IOException
- if an I/O error occurs.
-
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
-
writeUnsigned8
Write one unsigned integer 8 bit value.
- Parameters:
v
- an int containing an unsigned value- Throws:
IOException
- if an I/O error occurs
-
writeUnsigned16
Write one unsigned integer 16 bit value.
- Parameters:
v
- an int containing an unsigned value- Throws:
IOException
- if an I/O error occurs
-
writeSigned16
Write one signed integer 16 bit value.
- Parameters:
v
- an int containing an signed value- Throws:
IOException
- if an I/O error occurs
-
writeUnsigned32
Write one unsigned integer 32 bit value.
- Parameters:
v
- a long containing an unsigned value- Throws:
IOException
- if an I/O error occurs
-
writeSigned32
Write one signed integer 32 bit value.
- Parameters:
v
- a long containing an signed value- Throws:
IOException
- if an I/O error occurs
-
writeUnsigned64
Write one unsigned integer 64 bit value.
- Parameters:
v
- a long containing an unsigned value- Throws:
IOException
- if an I/O error occurs
-
writeSigned64
Write one signed integer 64 bit value.
- Parameters:
v
- a long containing a signed value- Throws:
IOException
- if an I/O error occurs
-
writeFloat
Write one floating point 32 bit value.
- Parameters:
value
- a float value- Throws:
IOException
- if an I/O error occurs
-
writeDouble
Write one floating point 64 bit value.
- Parameters:
value
- a double value- Throws:
IOException
- if an I/O error occurs
-
writeUnsigned16
Write an array of unsigned integer 16 bit values.
- Parameters:
w
- an array of integers to writelen
- the number of 16 bit values to write- Throws:
IOException
- if an I/O error occurs
-
writeUnsigned32
Write an array of unsigned integer 32 bit values.
- Parameters:
w
- an array of integers to writelen
- the number of 32 bit values to write- Throws:
IOException
- if an I/O error occurs
-
writeUnsigned64
Write an array of unsigned integer 64 bit values.
- Parameters:
w
- an array of integers to writelen
- the number of 64 bit values to write- Throws:
IOException
- if an I/O error occurs
-
writeFloat
Write an array of floating point 32 bit values.
- Parameters:
f
- an array of floats to writelen
- the number of values to write- Throws:
IOException
- if an I/O error occurs
-
writeDouble
Write an array of floating point 64 bit values.
- Parameters:
f
- an array of floats to writelen
- the number of values to write- Throws:
IOException
- if an I/O error occurs
-
main
For testing.
- Parameters:
arg
- file to write to
-