java.io
Class DataOutputStream

java.lang.Object
  extended byjava.io.OutputStream
      extended byjava.io.FilterOutputStream
          extended byjava.io.DataOutputStream
All Implemented Interfaces:
DataOutput

public class DataOutputStream
extends FilterOutputStream
implements DataOutput

A data output stream lets an application write primitive Java data types to an output stream in a portable way. An application can then use a data input stream to read the data back in.

Since:
JDK1.0
Author:
unascribed
See Also:
DataInputStream

Field Summary
private  byte[] writeBuffer
           
protected  int written
          The number of bytes written to the data output stream so far.
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
DataOutputStream(OutputStream out)
          Creates a new data output stream to write data to the specified underlying output stream.
 
Method Summary
 void flush()
          Flushes this data output stream.
private  void incCount(int value)
          Increases the written counter by the specified value until it reaches Integer.MAX_VALUE.
 int size()
          Returns the current value of the counter written, the number of bytes written to this data output stream so far.
 void write(byte[] b, int off, int len)
          Writes len bytes from the specified byte array starting at offset off to the underlying output stream.
 void write(int b)
          Writes the specified byte (the low eight bits of the argument b) to the underlying output stream.
 void writeBoolean(boolean v)
          Writes a boolean to the underlying output stream as a 1-byte value.
 void writeByte(int v)
          Writes out a byte to the underlying output stream as a 1-byte value.
 void writeBytes(String s)
          Writes out the string to the underlying output stream as a sequence of bytes.
 void writeChar(int v)
          Writes a char to the underlying output stream as a 2-byte value, high byte first.
 void writeChars(String s)
          Writes a string to the underlying output stream as a sequence of characters.
 void writeDouble(double v)
          Converts the double argument to a long using the doubleToLongBits method in class Double, and then writes that long value to the underlying output stream as an 8-byte quantity, high byte first.
 void writeFloat(float v)
          Converts the float argument to an int using the floatToIntBits method in class Float, and then writes that int value to the underlying output stream as a 4-byte quantity, high byte first.
 void writeInt(int v)
          Writes an int to the underlying output stream as four bytes, high byte first.
 void writeLong(long v)
          Writes a long to the underlying output stream as eight bytes, high byte first.
 void writeShort(int v)
          Writes a short to the underlying output stream as two bytes, high byte first.
 void writeUTF(String str)
          Writes a string to the underlying output stream using Java modified UTF-8 encoding in a machine-independent manner.
(package private) static int writeUTF(String str, DataOutput out)
          Writes a string to the specified DataOutput using Java modified UTF-8 encoding in a machine-independent manner.
 
Methods inherited from class java.io.FilterOutputStream
close, 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

written

protected int written
The number of bytes written to the data output stream so far. If this counter overflows, it will be wrapped to Integer.MAX_VALUE.


writeBuffer

private byte[] writeBuffer
Constructor Detail

DataOutputStream

public DataOutputStream(OutputStream out)
Creates a new data output stream to write data to the specified underlying output stream. The counter written is set to zero.

Parameters:
out - the underlying output stream, to be saved for later use.
See Also:
FilterOutputStream.out
Method Detail

incCount

private void incCount(int value)
Increases the written counter by the specified value until it reaches Integer.MAX_VALUE.


write

public void write(int b)
           throws IOException
Writes the specified byte (the low eight bits of the argument b) to the underlying output stream. If no exception is thrown, the counter written is incremented by 1.

Implements the write method of OutputStream.

Specified by:
write in interface DataOutput
Overrides:
write in class FilterOutputStream
Parameters:
b - the byte to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
Writes len bytes from the specified byte array starting at offset off to the underlying output stream. If no exception is thrown, the counter written is incremented by len.

Specified by:
write in interface DataOutput
Overrides:
write in class FilterOutputStream
Parameters:
b - the data.
off - the start offset in the data.
len - the number of bytes to write.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out

flush

public void flush()
           throws IOException
Flushes this data output stream. This forces any buffered output bytes to be written out to the stream.

The flush method of DataOuputStream calls the flush method of its underlying output stream.

Overrides:
flush in class FilterOutputStream
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out, OutputStream.flush()

writeBoolean

public final void writeBoolean(boolean v)
                        throws IOException
Writes a boolean to the underlying output stream as a 1-byte value. The value true is written out as the value (byte)1; the value false is written out as the value (byte)0. If no exception is thrown, the counter written is incremented by 1.

Specified by:
writeBoolean in interface DataOutput
Parameters:
v - a boolean value to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out

writeByte

public final void writeByte(int v)
                     throws IOException
Writes out a byte to the underlying output stream as a 1-byte value. If no exception is thrown, the counter written is incremented by 1.

Specified by:
writeByte in interface DataOutput
Parameters:
v - a byte value to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out

writeShort

public final void writeShort(int v)
                      throws IOException
Writes a short to the underlying output stream as two bytes, high byte first. If no exception is thrown, the counter written is incremented by 2.

Specified by:
writeShort in interface DataOutput
Parameters:
v - a short to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out

writeChar

public final void writeChar(int v)
                     throws IOException
Writes a char to the underlying output stream as a 2-byte value, high byte first. If no exception is thrown, the counter written is incremented by 2.

Specified by:
writeChar in interface DataOutput
Parameters:
v - a char value to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out

writeInt

public final void writeInt(int v)
                    throws IOException
Writes an int to the underlying output stream as four bytes, high byte first. If no exception is thrown, the counter written is incremented by 4.

Specified by:
writeInt in interface DataOutput
Parameters:
v - an int to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out

writeLong

public final void writeLong(long v)
                     throws IOException
Writes a long to the underlying output stream as eight bytes, high byte first. In no exception is thrown, the counter written is incremented by 8.

Specified by:
writeLong in interface DataOutput
Parameters:
v - a long to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out

writeFloat

public final void writeFloat(float v)
                      throws IOException
Converts the float argument to an int using the floatToIntBits method in class Float, and then writes that int value to the underlying output stream as a 4-byte quantity, high byte first. If no exception is thrown, the counter written is incremented by 4.

Specified by:
writeFloat in interface DataOutput
Parameters:
v - a float value to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out, Float.floatToIntBits(float)

writeDouble

public final void writeDouble(double v)
                       throws IOException
Converts the double argument to a long using the doubleToLongBits method in class Double, and then writes that long value to the underlying output stream as an 8-byte quantity, high byte first. If no exception is thrown, the counter written is incremented by 8.

Specified by:
writeDouble in interface DataOutput
Parameters:
v - a double value to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out, Double.doubleToLongBits(double)

writeBytes

public final void writeBytes(String s)
                      throws IOException
Writes out the string to the underlying output stream as a sequence of bytes. Each character in the string is written out, in sequence, by discarding its high eight bits. If no exception is thrown, the counter written is incremented by the length of s.

Specified by:
writeBytes in interface DataOutput
Parameters:
s - a string of bytes to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
FilterOutputStream.out

writeChars

public final void writeChars(String s)
                      throws 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. If no exception is thrown, the counter written is incremented by twice the length of s.

Specified by:
writeChars in interface DataOutput
Parameters:
s - a String value to be written.
Throws:
IOException - if an I/O error occurs.
See Also:
writeChar(int), FilterOutputStream.out

writeUTF

public final void writeUTF(String str)
                    throws IOException
Writes a string to the underlying output stream using Java modified UTF-8 encoding in a machine-independent manner.

First, two bytes are written to the output stream as if by the writeShort method giving the number of bytes to follow. This value is the number of bytes actually written out, not the length of the string. Following the length, each character of the string is output, in sequence, using the modified UTF-8 encoding for the character. If no exception is thrown, the counter written is incremented by the total number of bytes written to the output stream. This will be at least two plus the length of str, and at most two plus thrice the length of str.

Specified by:
writeUTF in interface DataOutput
Parameters:
str - a string to be written.
Throws:
IOException - if an I/O error occurs.

writeUTF

static int writeUTF(String str,
                    DataOutput out)
             throws IOException
Writes a string to the specified DataOutput using Java modified UTF-8 encoding in a machine-independent manner.

First, two bytes are written to out as if by the writeShort method giving the number of bytes to follow. This value is the number of bytes actually written out, not the length of the string. Following the length, each character of the string is output, in sequence, using the modified UTF-8 encoding for the character. If no exception is thrown, the counter written is incremented by the total number of bytes written to the output stream. This will be at least two plus the length of str, and at most two plus thrice the length of str.

Parameters:
str - a string to be written.
out - destination to write to
Returns:
The number of bytes written out.
Throws:
IOException - if an I/O error occurs.

size

public final int size()
Returns the current value of the counter written, the number of bytes written to this data output stream so far. If the counter overflows, it will be wrapped to Integer.MAX_VALUE.

Returns:
the value of the written field.
See Also:
written