Class BinaryOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- com.pixelmed.dicom.BinaryOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
- Direct Known Subclasses:
DicomOutputStream
public class BinaryOutputStream extends java.io.FilterOutputStream
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:
BinaryInputStream
-
-
Field Summary
Fields Modifier and Type Field Description protected long
byteOffset
-
Constructor Summary
Constructors Constructor Description BinaryOutputStream(java.io.OutputStream o, boolean big)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getByteOffset()
Get the byte offset where the next byte will be written.boolean
isBigEndian()
Is the stream byte order big endian ?boolean
isLittleEndian()
Is the stream byte order little endian ?protected void
localInit(boolean big)
static void
main(java.lang.String[] arg)
For testing.void
setBigEndian()
Set the stream byte order to big endian.void
setEndian(boolean big)
Set the stream byte order to that specified.void
setLittleEndian()
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.void
writeDouble(double value)
Write one floating point 64 bit value.void
writeDouble(double[] f, int len)
Write an array of floating point 64 bit values.void
writeFloat(float value)
Write one floating point 32 bit value.void
writeFloat(float[] f, int len)
Write an array of floating point 32 bit values.void
writeSigned16(int v)
Write one signed integer 16 bit value.void
writeSigned32(long v)
Write one signed integer 32 bit value.void
writeSigned64(long v)
Write one signed integer 64 bit value.void
writeUnsigned16(int v)
Write one unsigned integer 16 bit value.void
writeUnsigned16(short[] w, int len)
Write an array of unsigned integer 16 bit values.void
writeUnsigned32(int[] w, int len)
Write an array of unsigned integer 32 bit values.void
writeUnsigned32(long v)
Write one unsigned integer 32 bit value.void
writeUnsigned64(long v)
Write one unsigned integer 64 bit value.void
writeUnsigned64(long[] w, int len)
Write an array of unsigned integer 64 bit values.void
writeUnsigned8(int v)
Write one unsigned integer 8 bit value.
-
-
-
Method Detail
-
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
public void write(byte[] b, int off, int len) throws java.io.IOException
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 classjava.io.FilterOutputStream
- Parameters:
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.- Throws:
java.io.IOException
- if an I/O error occurs.
-
write
public void write(int b) throws java.io.IOException
Writes the specifiedbyte
to this output stream.- Overrides:
write
in classjava.io.FilterOutputStream
- Parameters:
b
- thebyte
.- Throws:
java.io.IOException
- if an I/O error occurs.
-
write
public void write(byte[] b) throws java.io.IOException
Writesb.length
bytes to this output stream.- Overrides:
write
in classjava.io.FilterOutputStream
- Parameters:
b
- the data to be written.- Throws:
java.io.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
public final void writeUnsigned8(int v) throws java.io.IOException
Write one unsigned integer 8 bit value.
- Parameters:
v
- an int containing an unsigned value- Throws:
java.io.IOException
- if an I/O error occurs
-
writeUnsigned16
public final void writeUnsigned16(int v) throws java.io.IOException
Write one unsigned integer 16 bit value.
- Parameters:
v
- an int containing an unsigned value- Throws:
java.io.IOException
- if an I/O error occurs
-
writeSigned16
public final void writeSigned16(int v) throws java.io.IOException
Write one signed integer 16 bit value.
- Parameters:
v
- an int containing an signed value- Throws:
java.io.IOException
- if an I/O error occurs
-
writeUnsigned32
public final void writeUnsigned32(long v) throws java.io.IOException
Write one unsigned integer 32 bit value.
- Parameters:
v
- a long containing an unsigned value- Throws:
java.io.IOException
- if an I/O error occurs
-
writeSigned32
public final void writeSigned32(long v) throws java.io.IOException
Write one signed integer 32 bit value.
- Parameters:
v
- a long containing an signed value- Throws:
java.io.IOException
- if an I/O error occurs
-
writeUnsigned64
public final void writeUnsigned64(long v) throws java.io.IOException
Write one unsigned integer 64 bit value.
- Parameters:
v
- a long containing an unsigned value- Throws:
java.io.IOException
- if an I/O error occurs
-
writeSigned64
public final void writeSigned64(long v) throws java.io.IOException
Write one signed integer 64 bit value.
- Parameters:
v
- a long containing a signed value- Throws:
java.io.IOException
- if an I/O error occurs
-
writeFloat
public final void writeFloat(float value) throws java.io.IOException
Write one floating point 32 bit value.
- Parameters:
value
- a float value- Throws:
java.io.IOException
- if an I/O error occurs
-
writeDouble
public final void writeDouble(double value) throws java.io.IOException
Write one floating point 64 bit value.
- Parameters:
value
- a double value- Throws:
java.io.IOException
- if an I/O error occurs
-
writeUnsigned16
public final void writeUnsigned16(short[] w, int len) throws java.io.IOException
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:
java.io.IOException
- if an I/O error occurs
-
writeUnsigned32
public final void writeUnsigned32(int[] w, int len) throws java.io.IOException
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:
java.io.IOException
- if an I/O error occurs
-
writeUnsigned64
public final void writeUnsigned64(long[] w, int len) throws java.io.IOException
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:
java.io.IOException
- if an I/O error occurs
-
writeFloat
public final void writeFloat(float[] f, int len) throws java.io.IOException
Write an array of floating point 32 bit values.
- Parameters:
f
- an array of floats to writelen
- the number of values to write- Throws:
java.io.IOException
- if an I/O error occurs
-
writeDouble
public final void writeDouble(double[] f, int len) throws java.io.IOException
Write an array of floating point 64 bit values.
- Parameters:
f
- an array of floats to writelen
- the number of values to write- Throws:
java.io.IOException
- if an I/O error occurs
-
main
public static void main(java.lang.String[] arg)
For testing.
- Parameters:
arg
- file to write to
-
-