- Home
- Objectives

- XyzWs Study Guides
- Study Guides
- Study Notes
- Resources

- Mock Exams
SCJP Study Guide:
API Contents
Printer-friendly version |
Mail this to a friend
DataOutputStream
The package java.io provides two set of class hierarchies - one for handling reading and writing of bytes, and another for handling reading and writing of characters. The abstract classes InputStream and OutputStream are the root of inheritance hierarchies handling reading and writing of bytes respectively.
java.io.DataOutputStream
The DataOutputStream class is a subclass of the FilterOutputStream class that provides methods for writing a variety of data types to an OutputStream. The DataOutputStream class implements the DataOutput interface, so it defines methods for writing all of the primitive Java data types.
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.
DataOutputStream, like other filtered output streams, must be attached to some other OutputStream.You create a DataOutputStream by passing a reference to an underlying OutputStream to the constructor.
- 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.
The DataOutputStream class defines methods for writing primitive data types to an output stream in a machine-independent manner. Many of the methods of DataOutputStream write a single primitive data type, in binary format, to an underlying output stream. All multibyte quantities are written in a format that stores the most significant byte as the first byte and the least significant byte as the last byte. All of the writing methods throw an IOException if there is an I/O error occurs.
- 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.
- 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.
- 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.
- 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.
- 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.
- public final void writeChar(int v) throws IOExceptionWrites 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
DataOutputStream also provides a high-level interface for writing modified UTF-8 data format from a file.
- public final void writeUTF(String str) throws IOException writes a string to the underlying output stream using 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.
Misc Methods:
- 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.
- 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 DataOutputStream calls the flush method of its underlying output stream.
Here is an example that creates a DataOutputStream and uses it to write the length of an array as an int and then to write the values in array as long values: