Closeable
, DataOutput
, Flushable
, AutoCloseable
public class DataOutputStream extends FilterOutputStream implements DataOutput
A DataOutputStream is not safe for use by multiple concurrent threads. If a DataOutputStream is to be used by more than one thread then access to the data output stream should be controlled by appropriate synchronization.
Modifier and Type | Field | Description |
---|---|---|
protected int |
written |
The number of bytes written to the data output stream so far. |
out
Constructor | Description |
---|---|
DataOutputStream |
Creates a new data output stream to write data to the specified underlying output stream. |
Modifier and Type | Method | Description |
---|---|---|
void |
flush() |
Flushes this data output stream. |
final int |
size() |
Returns the current value of the counter written , the number of bytes written to this data output stream so far. |
void |
write |
Writes len bytes from the specified byte array starting at offset off to the underlying output stream. |
void |
write |
Writes the specified byte (the low eight bits of the argument b ) to the underlying output stream. |
final void |
writeBoolean |
Writes a boolean to the underlying output stream as a 1-byte value. |
final void |
writeByte |
Writes out a byte to the underlying output stream as a 1-byte value. |
final void |
writeBytes |
Writes out the string to the underlying output stream as a sequence of bytes. |
final void |
writeChar |
Writes a char to the underlying output stream as a 2-byte value, high byte first. |
final void |
writeChars |
Writes a string to the underlying output stream as a sequence of characters. |
final void |
writeDouble |
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. |
final void |
writeFloat |
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. |
final void |
writeInt |
Writes an int to the underlying output stream as four bytes, high byte first. |
final void |
writeLong |
Writes a long to the underlying output stream as eight bytes, high byte first. |
final void |
writeShort |
Writes a short to the underlying output stream as two bytes, high byte first. |
final void |
writeUTF |
Writes a string to the underlying output stream using modified UTF-8 encoding in a machine-independent manner. |
close, write
nullOutputStream
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
write
protected int written
public DataOutputStream(OutputStream out)
written
is set to zero.out
- the underlying output stream, to be saved for later use.public void write(int b) throws IOException
b
) to the underlying output stream. If no exception is thrown, the counter written
is incremented by 1
. Implements the write
method of OutputStream
.
write
in interface DataOutput
write
in class FilterOutputStream
b
- the byte
to be written.IOException
- if an I/O error occurs.public void write(byte[] b, int off, int len) throws IOException
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
.write
in interface DataOutput
write
in class FilterOutputStream
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.IOException
- if an I/O error occurs.IndexOutOfBoundsException
- If off
is negative, len
is negative, or len
is greater than b.length - off
public void flush() throws IOException
The flush
method of DataOutputStream
calls the flush
method of its underlying output stream.
flush
in interface Flushable
flush
in class FilterOutputStream
IOException
- if an I/O error occurs.public final void writeBoolean(boolean v) throws IOException
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
.writeBoolean
in interface DataOutput
v
- a boolean
value to be written.IOException
- if an I/O error occurs.public final void writeByte(int v) throws IOException
byte
to the underlying output stream as a 1-byte value. If no exception is thrown, the counter written
is incremented by 1
.writeByte
in interface DataOutput
v
- a byte
value to be written.IOException
- if an I/O error occurs.public final void writeShort(int v) throws IOException
short
to the underlying output stream as two bytes, high byte first. If no exception is thrown, the counter written
is incremented by 2
.writeShort
in interface DataOutput
v
- a short
to be written.IOException
- if an I/O error occurs.public final void writeChar(int v) throws IOException
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
.writeChar
in interface DataOutput
v
- a char
value to be written.IOException
- if an I/O error occurs.public final void writeInt(int v) throws IOException
int
to the underlying output stream as four bytes, high byte first. If no exception is thrown, the counter written
is incremented by 4
.writeInt
in interface DataOutput
v
- an int
to be written.IOException
- if an I/O error occurs.public final void writeLong(long v) throws IOException
long
to the underlying output stream as eight bytes, high byte first. In no exception is thrown, the counter written
is incremented by 8
.writeLong
in interface DataOutput
v
- a long
to be written.IOException
- if an I/O error occurs.public final void writeFloat(float v) throws IOException
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
.writeFloat
in interface DataOutput
v
- a float
value to be written.IOException
- if an I/O error occurs.public final void writeDouble(double v) throws IOException
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
.writeDouble
in interface DataOutput
v
- a double
value to be written.IOException
- if an I/O error occurs.public final void writeBytes(String s) throws IOException
written
is incremented by the length of s
.writeBytes
in interface DataOutput
s
- a string of bytes to be written.IOException
- if an I/O error occurs.public final void writeChars(String s) throws IOException
writeChar
method. If no exception is thrown, the counter written
is incremented by twice the length of s
.writeChars
in interface DataOutput
s
- a String
value to be written.IOException
- if an I/O error occurs.public final void writeUTF(String str) throws IOException
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
.
writeUTF
in interface DataOutput
str
- a string to be written.UTFDataFormatException
- if the modified UTF-8 encoding of str
would exceed 65535 bytes in lengthIOException
- if some other I/O error occurs.public final int size()
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.written
field.
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/io/DataOutputStream.html