Package com.twelvemonkeys.io
Class LittleEndianDataOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- com.twelvemonkeys.io.LittleEndianDataOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.DataOutput,java.io.Flushable,java.lang.AutoCloseable
public class LittleEndianDataOutputStream extends java.io.FilterOutputStream implements java.io.DataOutputA little endian output stream writes primitive Java numbers and characters to an output stream in a little endian format.The standard
java.io.DataOutputStreamclass which this class imitates uses big endian integers.Warning: The
DataInputandDataOutputinterfaces 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
- See Also:
LittleEndianRandomAccessFile,DataOutputStream,DataInput,DataOutput
-
-
Field Summary
Fields Modifier and Type Field Description protected intbytesWrittenThe number of bytes written so far to the little endian output stream.
-
Constructor Summary
Constructors Constructor Description LittleEndianDataOutputStream(java.io.OutputStream pStream)Creates a new little endian output stream and chains it to the output stream specified by thepStreamargument.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intsize()Returns the number of bytes written to this little endian output stream.voidwrite(byte[] pBytes, int pOffset, int pLength)WritespLengthbytes from the specified byte array starting atpOffsetto the underlying output stream.voidwrite(int pByte)Writes the specified byte value to the underlying output stream.voidwriteBoolean(boolean pBoolean)Writes abooleanto the underlying output stream as a single byte.voidwriteByte(int pByte)Writes out abyteto the underlying output streamvoidwriteBytes(java.lang.String pString)Writes a string to the underlying output stream as a sequence of bytes.voidwriteChar(int pChar)Writes a two bytecharto the underlying output stream in little endian order, low byte first.voidwriteChars(java.lang.String pString)Writes a string to the underlying output stream as a sequence of characters.voidwriteDouble(double d)Writes an 8 byte Java double to the underlying output stream in little endian order.voidwriteFloat(float f)Writes a 4 byte Java float to the underlying output stream in little endian order.voidwriteInt(int pInt)Writes a four-byteintto the underlying output stream in little endian order, low byte first, high byte lastvoidwriteLong(long pLong)Writes an eight-bytelongto the underlying output stream in little endian order, low byte first, high byte lastvoidwriteShort(int pShort)Writes a two byteshortto the underlying output stream in little endian order, low byte first.voidwriteUTF(java.lang.String pString)Writes a string of no more than 65,535 characters to the underlying output stream using UTF-8 encoding.
-
-
-
Constructor Detail
-
LittleEndianDataOutputStream
public LittleEndianDataOutputStream(java.io.OutputStream pStream)
Creates a new little endian output stream and chains it to the output stream specified by thepStreamargument.- Parameters:
pStream- the underlying output stream.- See Also:
FilterOutputStream.out
-
-
Method Detail
-
write
public void write(int pByte) throws java.io.IOExceptionWrites the specified byte value to the underlying output stream.- Specified by:
writein interfacejava.io.DataOutput- Overrides:
writein classjava.io.FilterOutputStream- Parameters:
pByte- thebytevalue to be written.- Throws:
java.io.IOException- if the underlying stream throws an IOException.
-
write
public void write(byte[] pBytes, int pOffset, int pLength) throws java.io.IOExceptionWritespLengthbytes from the specified byte array starting atpOffsetto the underlying output stream.- Specified by:
writein interfacejava.io.DataOutput- Overrides:
writein classjava.io.FilterOutputStream- Parameters:
pBytes- the data.pOffset- the start offset in the data.pLength- the number of bytes to write.- Throws:
java.io.IOException- if the underlying stream throws an IOException.
-
writeBoolean
public void writeBoolean(boolean pBoolean) throws java.io.IOExceptionWrites abooleanto 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 value0in written.- Specified by:
writeBooleanin interfacejava.io.DataOutput- Parameters:
pBoolean- thebooleanvalue to be written.- Throws:
java.io.IOException- if the underlying stream throws an IOException.
-
writeByte
public void writeByte(int pByte) throws java.io.IOExceptionWrites out abyteto the underlying output stream- Specified by:
writeBytein interfacejava.io.DataOutput- Parameters:
pByte- thebytevalue to be written.- Throws:
java.io.IOException- if the underlying stream throws an IOException.
-
writeShort
public void writeShort(int pShort) throws java.io.IOExceptionWrites a two byteshortto the underlying output stream in little endian order, low byte first.- Specified by:
writeShortin interfacejava.io.DataOutput- Parameters:
pShort- theshortto be written.- Throws:
java.io.IOException- if the underlying stream throws an IOException.
-
writeChar
public void writeChar(int pChar) throws java.io.IOExceptionWrites a two bytecharto the underlying output stream in little endian order, low byte first.- Specified by:
writeCharin interfacejava.io.DataOutput- Parameters:
pChar- thecharvalue to be written.- Throws:
java.io.IOException- if the underlying stream throws an IOException.
-
writeInt
public void writeInt(int pInt) throws java.io.IOExceptionWrites a four-byteintto the underlying output stream in little endian order, low byte first, high byte last- Specified by:
writeIntin interfacejava.io.DataOutput- Parameters:
pInt- theintto be written.- Throws:
java.io.IOException- if the underlying stream throws an IOException.
-
writeLong
public void writeLong(long pLong) throws java.io.IOExceptionWrites an eight-bytelongto the underlying output stream in little endian order, low byte first, high byte last- Specified by:
writeLongin interfacejava.io.DataOutput- Parameters:
pLong- thelongto be written.- Throws:
java.io.IOException- if the underlying stream throws an IOException.
-
writeFloat
public final void writeFloat(float f) throws java.io.IOExceptionWrites a 4 byte Java float to the underlying output stream in little endian order.- Specified by:
writeFloatin interfacejava.io.DataOutput- Parameters:
f- thefloatvalue to be written.- Throws:
java.io.IOException- if an I/O error occurs.
-
writeDouble
public final void writeDouble(double d) throws java.io.IOExceptionWrites an 8 byte Java double to the underlying output stream in little endian order.- Specified by:
writeDoublein interfacejava.io.DataOutput- Parameters:
d- thedoublevalue to be written.- Throws:
java.io.IOException- if an I/O error occurs.
-
writeBytes
public void writeBytes(java.lang.String pString) throws java.io.IOExceptionWrites 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:
writeBytesin interfacejava.io.DataOutput- Parameters:
pString- theStringvalue to be written.- Throws:
java.io.IOException- if the underlying stream throws an IOException.- See Also:
writeByte(int),FilterOutputStream.out
-
writeChars
public void writeChars(java.lang.String pString) throws java.io.IOExceptionWrites a string to the underlying output stream as a sequence of characters. Each character is written to the data output stream as if by thewriteCharmethod.- Specified by:
writeCharsin interfacejava.io.DataOutput- Parameters:
pString- aStringvalue to be written.- Throws:
java.io.IOException- if the underlying stream throws an IOException.- See Also:
writeChar(int),FilterOutputStream.out
-
writeUTF
public void writeUTF(java.lang.String pString) throws java.io.IOExceptionWrites 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:
writeUTFin interfacejava.io.DataOutput- Parameters:
pString- the string to be written.- Throws:
java.io.UTFDataFormatException- if the string is longer than 65,535 characters.java.io.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
writtenfield. - See Also:
bytesWritten
-
-