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());
}
}
}