DataOutputStream class


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

DataOutputStream enable you to write primitive data to a stream. DataOutputStream implements the DataOutput interface.

DataOutput interface defines methods that convert primitive values to a sequence of bytes.

DataOutputStream makes it easy to store binary data, such as integers or floating-point values, in a file.

DataOutputStream extends FilterOutputStream, which extends OutputStream. DataOutputStream defines the following constructor:


DataOutputStream(OutputStream outputStream)

outputStream specifies the output stream to which data will be written.

DataOutput defines methods that convert values of a primitive type into a byte sequence and then writes it to the underlying stream.

void flush()
Flushes this data output stream.
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 as a 1-byte value.
void writeByte(int v)
Writes out a byte as a 1-byte value.
void writeBytes(String s)
Writes out the string as a sequence of bytes.
void writeChar(int v)
Writes a char to as a 2-byte value, high byte first.
void writeChars(String s)
Writes a string 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 as eight bytes, high byte first.
void writeShort(int v)
Writes a short as two bytes, high byte first.
void writeUTF(String str)
Writes a string using modified UTF-8 encoding in a machine-independent manner.

Revised from Open JDK source code


import java.io.DataOutputStream;
import java.io.FileOutputStream;

public class Main {

  public static void main(String args[]) throws Exception {

    FileOutputStream fos = new FileOutputStream("c:/a.txt");

    DataOutputStream dos = new DataOutputStream(fos);

    dos.writeShort(1);
    dos.writeBytes("java2s.com");
    dos.writeChar('a');
    dos.writeBoolean(true);

    fos.close();
  }
}

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main  {
    

    public static void main(String[] args) {
        try (DataOutputStream dos = new DataOutputStream(new FileOutputStream("values.dat"))) {
            dos.writeInt(1);
            dos.writeUTF("asdf");
            dos.writeFloat(1.0F);
        } catch (IOException ioe) {
            System.err.println("I/O error: " + ioe.getMessage());
        }
        try (DataInputStream dis = new DataInputStream(new FileInputStream("values.dat"))) {
            System.out.println(dis.readInt());
            System.out.println(dis.readUTF());
            System.out.println(dis.readFloat());
        } catch (IOException ioe) {
            System.err.println("I/O error: " + ioe.getMessage());
        }
    }
}
Home 
  Java Book 
    File Stream