com.twelvemonkeys.io
Class LittleEndianDataOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by com.twelvemonkeys.io.LittleEndianDataOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.DataOutput, java.io.Flushable

public class LittleEndianDataOutputStream
extends java.io.FilterOutputStream
implements java.io.DataOutput

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:
LittleEndianRandomAccessFile, DataOutputStream, DataInput, DataOutput

Field Summary
protected  int bytesWritten
          The number of bytes written so far to the little endian output stream.
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
LittleEndianDataOutputStream(java.io.OutputStream pStream)
          Creates a new little endian output stream and chains it to the output stream specified by the pStream argument.
 
Method Summary
 int size()
          Returns the number of bytes written to this little endian output stream.
 void write(byte[] pBytes, int pOffset, int pLength)
          Writes pLength bytes from the specified byte array starting at pOffset to the underlying output stream.
 void write(int pByte)
          Writes the specified byte value to the underlying output stream.
 void writeBoolean(boolean pBoolean)
          Writes a boolean to the underlying output stream as a single byte.
 void writeByte(int pByte)
          Writes out a byte to the underlying output stream
 void writeBytes(java.lang.String pString)
          Writes a string to the underlying output stream as a sequence of bytes.
 void writeChar(int pChar)
          Writes a two byte char to the underlying output stream in little endian order, low byte first.
 void writeChars(java.lang.String pString)
          Writes a string to the underlying output stream as a sequence of characters.
 void writeDouble(double d)
          Writes an 8 byte Java double to the underlying output stream in little endian order.
 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-byte int to the underlying output stream in little endian order, low byte first, high byte last
 void writeLong(long pLong)
          Writes an eight-byte long to the underlying output stream in little endian order, low byte first, high byte last
 void writeShort(int pShort)
          Writes a two byte short to the underlying output stream in little endian order, low byte first.
 void writeUTF(java.lang.String pString)
          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.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.io.DataOutput
write
 

Field Detail

bytesWritten

protected int bytesWritten
The number of bytes written so far to the little endian output stream.

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 the pStream argument.

Parameters:
pStream - the underlying output stream.
See Also:
FilterOutputStream.out
Method Detail

write

public void write(int pByte)
           throws java.io.IOException
Writes the specified byte value to the underlying output stream.

Specified by:
write in interface java.io.DataOutput
Overrides:
write in class java.io.FilterOutputStream
Parameters:
pByte - the byte value 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.IOException
Writes pLength bytes from the specified byte array starting at pOffset to the underlying output stream.

Specified by:
write in interface java.io.DataOutput
Overrides:
write in class java.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.IOException
Writes a boolean 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 value 0 in written.

Specified by:
writeBoolean in interface java.io.DataOutput
Parameters:
pBoolean - the boolean value to be written.
Throws:
java.io.IOException - if the underlying stream throws an IOException.

writeByte

public void writeByte(int pByte)
               throws java.io.IOException
Writes out a byte to the underlying output stream

Specified by:
writeByte in interface java.io.DataOutput
Parameters:
pByte - the byte value to be written.
Throws:
java.io.IOException - if the underlying stream throws an IOException.

writeShort

public void writeShort(int pShort)
                throws java.io.IOException
Writes a two byte short to the underlying output stream in little endian order, low byte first.

Specified by:
writeShort in interface java.io.DataOutput
Parameters:
pShort - the short to be written.
Throws:
java.io.IOException - if the underlying stream throws an IOException.

writeChar

public void writeChar(int pChar)
               throws java.io.IOException
Writes a two byte char to the underlying output stream in little endian order, low byte first.

Specified by:
writeChar in interface java.io.DataOutput
Parameters:
pChar - the char value to be written.
Throws:
java.io.IOException - if the underlying stream throws an IOException.

writeInt

public void writeInt(int pInt)
              throws java.io.IOException
Writes a four-byte int to the underlying output stream in little endian order, low byte first, high byte last

Specified by:
writeInt in interface java.io.DataOutput
Parameters:
pInt - the int to be written.
Throws:
java.io.IOException - if the underlying stream throws an IOException.

writeLong

public void writeLong(long pLong)
               throws java.io.IOException
Writes an eight-byte long to the underlying output stream in little endian order, low byte first, high byte last

Specified by:
writeLong in interface java.io.DataOutput
Parameters:
pLong - the long to be written.
Throws:
java.io.IOException - if the underlying stream throws an IOException.

writeFloat

public final void writeFloat(float f)
                      throws java.io.IOException
Writes a 4 byte Java float to the underlying output stream in little endian order.

Specified by:
writeFloat in interface java.io.DataOutput
Parameters:
f - the float value to be written.
Throws:
java.io.IOException - if an I/O error occurs.

writeDouble

public final void writeDouble(double d)
                       throws java.io.IOException
Writes an 8 byte Java double to the underlying output stream in little endian order.

Specified by:
writeDouble in interface java.io.DataOutput
Parameters:
d - the double value to be written.
Throws:
java.io.IOException - if an I/O error occurs.

writeBytes

public void writeBytes(java.lang.String pString)
                throws java.io.IOException
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 the writeByte(int) method.

Specified by:
writeBytes in interface java.io.DataOutput
Parameters:
pString - the String value 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.IOException
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 the writeChar method.

Specified by:
writeChars in interface java.io.DataOutput
Parameters:
pString - a String value 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.IOException
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 interface java.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 written field.
See Also:
bytesWritten


Copyright © 2014. All Rights Reserved.