Package com.twelvemonkeys.io
Class LittleEndianDataOutputStream
java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
com.twelvemonkeys.io.LittleEndianDataOutputStream
- All Implemented Interfaces:
Closeable
,DataOutput
,Flushable
,AutoCloseable
A little endian output stream writes primitive Java numbers
and characters to an output stream in a little endian format.
The standard java.io.DataOutputStream
class which this class
imitates uses big endian integers.
Warning:
The DataInput
and DataOutput
interfaces
specifies big endian byte order in their documentation.
This means that this class is, strictly speaking, not a proper
implementation. However, I don't see a reason for the these interfaces to
specify the byte order of their underlying representations.
- Version:
- 1.0.1, 19 May 1999
- Author:
- Elliotte Rusty Harold
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int
The number of bytes written so far to the little endian output stream.Fields inherited from class java.io.FilterOutputStream
out
-
Constructor Summary
ConstructorsConstructorDescriptionLittleEndianDataOutputStream
(OutputStream pStream) Creates a new little endian output stream and chains it to the output stream specified by thepStream
argument. -
Method Summary
Modifier and TypeMethodDescriptionint
size()
Returns the number of bytes written to this little endian output stream.void
write
(byte[] pBytes, int pOffset, int pLength) WritespLength
bytes from the specified byte array starting atpOffset
to the underlying output stream.void
write
(int pByte) Writes the specified byte value to the underlying output stream.void
writeBoolean
(boolean pBoolean) Writes aboolean
to the underlying output stream as a single byte.void
writeByte
(int pByte) Writes out abyte
to the underlying output streamvoid
writeBytes
(String pString) Writes a string to the underlying output stream as a sequence of bytes.void
writeChar
(int pChar) Writes a two bytechar
to the underlying output stream in little endian order, low byte first.void
writeChars
(String pString) Writes a string to the underlying output stream as a sequence of characters.final void
writeDouble
(double d) Writes an 8 byte Java double to the underlying output stream in little endian order.final void
writeFloat
(float f) Writes a 4 byte Java float to the underlying output stream in little endian order.void
writeInt
(int pInt) Writes a four-byteint
to the underlying output stream in little endian order, low byte first, high byte lastvoid
writeLong
(long pLong) Writes an eight-bytelong
to the underlying output stream in little endian order, low byte first, high byte lastvoid
writeShort
(int pShort) Writes a two byteshort
to the underlying output stream in little endian order, low byte first.void
Writes a string of no more than 65,535 characters to the underlying output stream using UTF-8 encoding.Methods inherited from class java.io.FilterOutputStream
close, flush, write
Methods inherited from class java.io.OutputStream
nullOutputStream
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.io.DataOutput
write
-
Field Details
-
bytesWritten
protected int bytesWrittenThe number of bytes written so far to the little endian output stream.
-
-
Constructor Details
-
LittleEndianDataOutputStream
Creates a new little endian output stream and chains it to the output stream specified by thepStream
argument.- Parameters:
pStream
- the underlying output stream.- See Also:
-
-
Method Details
-
write
Writes the specified byte value to the underlying output stream.- Specified by:
write
in interfaceDataOutput
- Overrides:
write
in classFilterOutputStream
- Parameters:
pByte
- thebyte
value to be written.- Throws:
IOException
- if the underlying stream throws an IOException.
-
write
WritespLength
bytes from the specified byte array starting atpOffset
to the underlying output stream.- Specified by:
write
in interfaceDataOutput
- Overrides:
write
in classFilterOutputStream
- Parameters:
pBytes
- the data.pOffset
- the start offset in the data.pLength
- the number of bytes to write.- Throws:
IOException
- if the underlying stream throws an IOException.
-
writeBoolean
Writes aboolean
to the underlying output stream as a single byte. If the argument is true, the byte value 1 is written. If the argument is false, the byte value0
in written.- Specified by:
writeBoolean
in interfaceDataOutput
- Parameters:
pBoolean
- theboolean
value to be written.- Throws:
IOException
- if the underlying stream throws an IOException.
-
writeByte
Writes out abyte
to the underlying output stream- Specified by:
writeByte
in interfaceDataOutput
- Parameters:
pByte
- thebyte
value to be written.- Throws:
IOException
- if the underlying stream throws an IOException.
-
writeShort
Writes a two byteshort
to the underlying output stream in little endian order, low byte first.- Specified by:
writeShort
in interfaceDataOutput
- Parameters:
pShort
- theshort
to be written.- Throws:
IOException
- if the underlying stream throws an IOException.
-
writeChar
Writes a two bytechar
to the underlying output stream in little endian order, low byte first.- Specified by:
writeChar
in interfaceDataOutput
- Parameters:
pChar
- thechar
value to be written.- Throws:
IOException
- if the underlying stream throws an IOException.
-
writeInt
Writes a four-byteint
to the underlying output stream in little endian order, low byte first, high byte last- Specified by:
writeInt
in interfaceDataOutput
- Parameters:
pInt
- theint
to be written.- Throws:
IOException
- if the underlying stream throws an IOException.
-
writeLong
Writes an eight-bytelong
to the underlying output stream in little endian order, low byte first, high byte last- Specified by:
writeLong
in interfaceDataOutput
- Parameters:
pLong
- thelong
to be written.- Throws:
IOException
- if the underlying stream throws an IOException.
-
writeFloat
Writes a 4 byte Java float to the underlying output stream in little endian order.- Specified by:
writeFloat
in interfaceDataOutput
- Parameters:
f
- thefloat
value to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeDouble
Writes an 8 byte Java double to the underlying output stream in little endian order.- Specified by:
writeDouble
in interfaceDataOutput
- Parameters:
d
- thedouble
value to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeBytes
Writes a string to the underlying output stream as a sequence of bytes. Each character is written to the data output stream as if by thewriteByte(int)
method.- Specified by:
writeBytes
in interfaceDataOutput
- Parameters:
pString
- theString
value to be written.- Throws:
IOException
- if the underlying stream throws an IOException.- See Also:
-
writeChars
Writes a string to the underlying output stream as a sequence of characters. Each character is written to the data output stream as if by thewriteChar
method.- Specified by:
writeChars
in interfaceDataOutput
- Parameters:
pString
- aString
value to be written.- Throws:
IOException
- if the underlying stream throws an IOException.- See Also:
-
writeUTF
Writes a string of no more than 65,535 characters to the underlying output stream using UTF-8 encoding. This method first writes a two byte short in big endian order as required by the UTF-8 specification. This gives the number of bytes in the UTF-8 encoded version of the string, not the number of characters in the string. Next each character of the string is written using the UTF-8 encoding for the character.- Specified by:
writeUTF
in interfaceDataOutput
- Parameters:
pString
- the string to be written.- Throws:
UTFDataFormatException
- if the string is longer than 65,535 characters.IOException
- if the underlying stream throws an IOException.
-
size
public int size()Returns the number of bytes written to this little endian output stream. (This class is not thread-safe with respect to this method. It is possible that this number is temporarily less than the actual number of bytes written.)- Returns:
- the value of the
written
field. - See Also:
-