java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.io.DataOutputStream
- All Implemented Interfaces:
Closeable
,DataOutput
,Flushable
,AutoCloseable
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:
- 1.0
- See Also:
DataInputStream
-
Field Summary
Fields Modifier and Type Field Description protected int
written
The number of bytes written to the data output stream so far. -
Constructor Summary
Constructors Constructor Description DataOutputStream(OutputStream out)
Creates a new data output stream to write data to the specified underlying output stream. -
Method Summary
Modifier and Type Method Description void
flush()
Flushes this data output stream.int
size()
Returns the current value of the counterwritten
, the number of bytes written to this data output stream so far.void
write(byte[] b, int off, int len)
Writeslen
bytes from the specified byte array starting at offsetoff
to the underlying output stream.void
write(int b)
Writes the specified byte (the low eight bits of the argumentb
) to the underlying output stream.void
writeBoolean(boolean v)
Writes aboolean
to the underlying output stream as a 1-byte value.void
writeByte(int v)
Writes out abyte
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 achar
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 along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value to the underlying output stream as an 8-byte quantity, high byte first.void
writeFloat(float v)
Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value to the underlying output stream as a 4-byte quantity, high byte first.void
writeInt(int v)
Writes anint
to the underlying output stream as four bytes, high byte first.void
writeLong(long v)
Writes along
to the underlying output stream as eight bytes, high byte first.void
writeShort(int v)
Writes ashort
to the underlying output stream as two bytes, high byte first.void
writeUTF(String str)
Writes a string to the underlying output stream using modified UTF-8 encoding in a machine-independent manner.
-
Field Details
-
written
protected int writtenThe number of bytes written to the data output stream so far. If this counter overflows, it will be wrapped to Integer.MAX_VALUE.
-
-
Constructor Details
-
DataOutputStream
Creates a new data output stream to write data to the specified underlying output stream. The counterwritten
is set to zero.- Parameters:
out
- the underlying output stream, to be saved for later use.- See Also:
FilterOutputStream.out
-
-
Method Details
-
write
Writes the specified byte (the low eight bits of the argumentb
) to the underlying output stream. If no exception is thrown, the counterwritten
is incremented by1
.Implements the
write
method ofOutputStream
.- Specified by:
write
in interfaceDataOutput
- Overrides:
write
in classFilterOutputStream
- Parameters:
b
- thebyte
to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
write
Writeslen
bytes from the specified byte array starting at offsetoff
to the underlying output stream. If no exception is thrown, the counterwritten
is incremented bylen
.- Specified by:
write
in interfaceDataOutput
- Overrides:
write
in classFilterOutputStream
- 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
Flushes this data output stream. This forces any buffered output bytes to be written out to the stream.The
flush
method ofDataOutputStream
calls theflush
method of its underlying output stream.- Specified by:
flush
in interfaceFlushable
- Overrides:
flush
in classFilterOutputStream
- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
,OutputStream.flush()
-
writeBoolean
Writes aboolean
to the underlying output stream as a 1-byte value. The valuetrue
is written out as the value(byte)1
; the valuefalse
is written out as the value(byte)0
. If no exception is thrown, the counterwritten
is incremented by1
.- Specified by:
writeBoolean
in interfaceDataOutput
- Parameters:
v
- aboolean
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeByte
Writes out abyte
to the underlying output stream as a 1-byte value. If no exception is thrown, the counterwritten
is incremented by1
.- Specified by:
writeByte
in interfaceDataOutput
- Parameters:
v
- abyte
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeShort
Writes ashort
to the underlying output stream as two bytes, high byte first. If no exception is thrown, the counterwritten
is incremented by2
.- Specified by:
writeShort
in interfaceDataOutput
- Parameters:
v
- ashort
to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeChar
Writes achar
to the underlying output stream as a 2-byte value, high byte first. If no exception is thrown, the counterwritten
is incremented by2
.- Specified by:
writeChar
in interfaceDataOutput
- Parameters:
v
- achar
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeInt
Writes anint
to the underlying output stream as four bytes, high byte first. If no exception is thrown, the counterwritten
is incremented by4
.- Specified by:
writeInt
in interfaceDataOutput
- Parameters:
v
- anint
to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeLong
Writes along
to the underlying output stream as eight bytes, high byte first. In no exception is thrown, the counterwritten
is incremented by8
.- Specified by:
writeLong
in interfaceDataOutput
- Parameters:
v
- along
to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeFloat
Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value to the underlying output stream as a 4-byte quantity, high byte first. If no exception is thrown, the counterwritten
is incremented by4
.- Specified by:
writeFloat
in interfaceDataOutput
- Parameters:
v
- afloat
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
,Float.floatToIntBits(float)
-
writeDouble
Converts the double argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value to the underlying output stream as an 8-byte quantity, high byte first. If no exception is thrown, the counterwritten
is incremented by8
.- Specified by:
writeDouble
in interfaceDataOutput
- Parameters:
v
- adouble
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
,Double.doubleToLongBits(double)
-
writeBytes
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 counterwritten
is incremented by the length ofs
.- Specified by:
writeBytes
in interfaceDataOutput
- Parameters:
s
- a string of bytes to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeChars
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 thewriteChar
method. If no exception is thrown, the counterwritten
is incremented by twice the length ofs
.- Specified by:
writeChars
in interfaceDataOutput
- Parameters:
s
- aString
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
writeChar(int)
,FilterOutputStream.out
-
writeUTF
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 counterwritten
is incremented by the total number of bytes written to the output stream. This will be at least two plus the length ofstr
, and at most two plus thrice the length ofstr
.- Specified by:
writeUTF
in interfaceDataOutput
- Parameters:
str
- a string to be written.- Throws:
UTFDataFormatException
- if the modified UTF-8 encoding ofstr
would exceed 65535 bytes in lengthIOException
- if some other I/O error occurs.- See Also:
writeChars(String)
-
size
public final int size()Returns the current value of the counterwritten
, 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
-