Index (Frames) | Index (No Frames) | Package | Package Tree | Tree
java.io

Class DataOutputStream

java.lang.Object
|
+--java.io.OutputStream
   |
   +--java.io.FilterOutputStream
      |
      +--java.io.DataOutputStream

All Implemented Interfaces:

DataOutput


public class DataOutputStream

extends FilterOutputStream

implements DataOutput

This class provides a mechanism for writing primitive Java datatypes to an OutputStream in a portable way. Data written to a stream using this class can be read back in using the DataInputStream class on any platform.

Author:See Also:

Field Summary

intwritten

This is the total number of bytes that have been written to the stream by this object instance.

Constructor Summary

DataOutputStream(java.io.OutputStream out)

This method initializes an instance of DataOutputStream to write its data to the specified underlying OutputStream

Method Summary

voidflush()

This method flushes any unwritten bytes to the underlying stream.
intsize()

This method returns the total number of bytes that have been written to the underlying output stream so far.
voidwrite(int b)

This method writes the specified byte (passed as an int) to the underlying output stream.
voidwrite(byte[] buf, int offset, int len)

This method writes len bytes from the specified byte array buf starting at position offset into the buffer to the underlying output stream.
voidwriteBoolean(boolean b)

This method writes a Java boolean to the underlying output stream.
voidwriteByte(int b)

This method writes a Java byte value to the underlying output stream.
voidwriteBytes(java.lang.String s)

This method writes all the bytes in a String out to the stream.
voidwriteChar(int c)

This method writes a single char value to the stream, high byte first.
voidwriteChars(java.lang.String s)

This method writes all the characters in a String to the stream.
voidwriteDouble(double d)

This method writes a Java double value to the stream.
voidwriteFloat(float f)

This method writes a Java float value to the stream.
voidwriteInt(int i)

This method writes a Java int to the stream, high bytes first.
voidwriteLong(long l)

This method writes a Java long to the stream, high bytes first.
voidwriteShort(int s)

This method writes a Java short to the stream, high byte first.
synchronized voidwriteUTF(java.lang.String s)

This method writes a Java String to the stream in a modified UTF-8 format.

Field Details

written

protected int written

This is the total number of bytes that have been written to the stream by this object instance.


Constructor Details

DataOutputStream

public DataOutputStream(java.io.OutputStream out)

This method initializes an instance of DataOutputStream to write its data to the specified underlying OutputStream

Parameters:


Method Details

flush

public void flush()

This method flushes any unwritten bytes to the underlying stream.

Throws:


size

public final int size()

This method returns the total number of bytes that have been written to the underlying output stream so far. This is the value of the written instance variable

Returns:


write

public void write(byte[] buf, int offset, int len)

This method writes len bytes from the specified byte array buf starting at position offset into the buffer to the underlying output stream.

Parameters:

Throws:


write

public void write(int b)

This method writes the specified byte (passed as an int) to the underlying output stream.

Parameters:

Throws:


writeBoolean

public final void writeBoolean(boolean b)

This method writes a Java boolean to the underlying output stream. For a value of true, 1 is written to the stream. For a value of false, 0 is written.

Parameters:

Throws:


writeByte

public final void writeByte(int b)

This method writes a Java byte value to the underlying output stream.

Parameters:

Throws:


writeBytes

public final void writeBytes(java.lang.String s)

This method writes all the bytes in a String out to the stream. One byte is written for each character in the String. The high eight bits of each character are discarded.

Parameters:

Throws:


writeChar

public final void writeChar(int c)

This method writes a single char value to the stream, high byte first.

Parameters:

Throws:


writeChars

public final void writeChars(java.lang.String s)

This method writes all the characters in a String to the stream. There will be two bytes for each character value. The high byte of the character will be written first.

Parameters:

Throws:


writeDouble

public final void writeDouble(double d)

This method writes a Java double value to the stream. This value is written by first calling the method Double.doubleToLongBits to retrieve an long representing the floating point number, then writing this long value to the stream exactly the same as the writeLong() method does.

Parameters:

Throws:

See Also:


writeFloat

public final void writeFloat(float f)

This method writes a Java float value to the stream. This value is written by first calling the method Float.floatToIntBits to retrieve an int representing the floating point number, then writing this int value to the stream exactly the same as the writeInt() method does.

Parameters:

Throws:

See Also:


writeInt

public final void writeInt(int i)

This method writes a Java int to the stream, high bytes first. This method requires four bytes to encode the value.

Parameters:

Throws:


writeLong

public final void writeLong(long l)

This method writes a Java long to the stream, high bytes first. This method requires eight bytes to encode the value.

Parameters:

Throws:


writeShort

public final void writeShort(int s)

This method writes a Java short to the stream, high byte first. This method requires two bytes to encode the value.

Parameters:

Throws:


writeUTF

public final synchronized void writeUTF(java.lang.String s)

This method writes a Java String to the stream in a modified UTF-8 format. First, two bytes are written to the stream indicating the number of bytes to follow. Note that this is the number of bytes in the encoded String not the String length. Next come the encoded characters. Each character in the String is encoded as either one, two or three bytes. For characters in the range of \u0001 to <\u007F>, one byte is used. The character value goes into bits 0-7 and bit eight is 0. For characters in the range of \u0080 to \u007FF, two bytes are used. Bits 6-10 of the character value are encoded bits 0-4 of the first byte, with the high bytes having a value of "110". Bits 0-5 of the character value are stored in bits 0-5 of the second byte, with the high bits set to "10". This type of encoding is also done for the null character \u0000. This eliminates any C style NUL character values in the output. All remaining characters are stored as three bytes. Bits 12-15 of the character value are stored in bits 0-3 of the first byte. The high bits of the first bytes are set to "1110". Bits 6-11 of the character value are stored in bits 0-5 of the second byte. The high bits of the second byte are set to "10". And bits 0-5 of the character value are stored in bits 0-5 of byte three, with the high bits of that byte set to "10".

Parameters:

Throws: