DataOutputStream (Java SE 13 & JDK 13 )
- 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 intwrittenThe 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 voidflush()Flushes this data output stream.
intsize()Returns the current value of the counter
written, the number of bytes written to this data output stream so far.voidwrite(byte[] b, int off, int len)Writes
lenbytes from the specified byte array starting at offsetoffto the underlying output stream.voidwrite(int b)Writes the specified byte (the low eight bits of the argument
b) to the underlying output stream.voidwriteBoolean(boolean v)Writes a
booleanto the underlying output stream as a 1-byte value.voidwriteByte(int v)Writes out a
byteto the underlying output stream as a 1-byte value.voidwriteBytes(String s)Writes out the string to the underlying output stream as a sequence of bytes.
voidwriteChar(int v)Writes a
charto the underlying output stream as a 2-byte value, high byte first.voidwriteChars(String s)Writes a string to the underlying output stream as a sequence of characters.
voidwriteDouble(double v)Converts the double argument to a
longusing thedoubleToLongBitsmethod in classDouble, and then writes thatlongvalue to the underlying output stream as an 8-byte quantity, high byte first.voidwriteFloat(float v)Converts the float argument to an
intusing thefloatToIntBitsmethod in classFloat, and then writes thatintvalue to the underlying output stream as a 4-byte quantity, high byte first.voidwriteInt(int v)Writes an
intto the underlying output stream as four bytes, high byte first.voidwriteLong(long v)Writes a
longto the underlying output stream as eight bytes, high byte first.voidwriteShort(int v)Writes a
shortto the underlying output stream as two bytes, high byte first.voidwriteUTF(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 written
The 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 counter
writtenis 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 argument
b) to the underlying output stream. If no exception is thrown, the counterwrittenis incremented by1.Implements the
writemethod ofOutputStream.- Specified by:
writein interfaceDataOutput- Overrides:
writein classFilterOutputStream- Parameters:
b- thebyteto be written.- Throws:
IOException- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
write
public void write(byte[] b, int off, int len) throws IOException
Writes
lenbytes from the specified byte array starting at offsetoffto the underlying output stream. If no exception is thrown, the counterwrittenis incremented bylen.- Specified by:
writein interfaceDataOutput- Overrides:
writein 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
flushmethod ofDataOutputStreamcalls theflushmethod of its underlying output stream.- Specified by:
flushin interfaceFlushable- Overrides:
flushin classFilterOutputStream- Throws:
IOException- if an I/O error occurs.- See Also:
FilterOutputStream.out,OutputStream.flush()
-
writeBoolean
public final void writeBoolean(boolean v) throws IOException
Writes a
booleanto the underlying output stream as a 1-byte value. The valuetrueis written out as the value(byte)1; the valuefalseis written out as the value(byte)0. If no exception is thrown, the counterwrittenis incremented by1.- Specified by:
writeBooleanin interfaceDataOutput- Parameters:
v- abooleanvalue to be written.- Throws:
IOException- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeByte
public final void writeByte(int v) throws IOException
Writes out a
byteto the underlying output stream as a 1-byte value. If no exception is thrown, the counterwrittenis incremented by1.- Specified by:
writeBytein interfaceDataOutput- Parameters:
v- abytevalue to be written.- Throws:
IOException- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeShort
public final void writeShort(int v) throws IOException
Writes a
shortto the underlying output stream as two bytes, high byte first. If no exception is thrown, the counterwrittenis incremented by2.- Specified by:
writeShortin interfaceDataOutput- Parameters:
v- ashortto be written.- Throws:
IOException- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeChar
public final void writeChar(int v) throws IOException
Writes a
charto the underlying output stream as a 2-byte value, high byte first. If no exception is thrown, the counterwrittenis incremented by2.- Specified by:
writeCharin interfaceDataOutput- Parameters:
v- acharvalue to be written.- Throws:
IOException- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeInt
public final void writeInt(int v) throws IOException
Writes an
intto the underlying output stream as four bytes, high byte first. If no exception is thrown, the counterwrittenis incremented by4.- Specified by:
writeIntin interfaceDataOutput- Parameters:
v- anintto be written.- Throws:
IOException- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeLong
public final void writeLong(long v) throws IOException
Writes a
longto the underlying output stream as eight bytes, high byte first. In no exception is thrown, the counterwrittenis incremented by8.- Specified by:
writeLongin interfaceDataOutput- Parameters:
v- alongto be written.- Throws:
IOException- if an I/O error occurs.- See Also:
FilterOutputStream.out
-
writeFloat
public final void writeFloat(float v) throws IOException
Converts the float argument to an
intusing thefloatToIntBitsmethod in classFloat, and then writes thatintvalue to the underlying output stream as a 4-byte quantity, high byte first. If no exception is thrown, the counterwrittenis incremented by4.- Specified by:
writeFloatin interfaceDataOutput- Parameters:
v- afloatvalue to be written.- Throws:
IOException- if an I/O error occurs.- See Also:
FilterOutputStream.out,Float.floatToIntBits(float)
-
writeDouble
public final void writeDouble(double v) throws IOException
Converts the double argument to a
longusing thedoubleToLongBitsmethod in classDouble, and then writes thatlongvalue to the underlying output stream as an 8-byte quantity, high byte first. If no exception is thrown, the counterwrittenis incremented by8.- Specified by:
writeDoublein interfaceDataOutput- Parameters:
v- adoublevalue 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 counter
writtenis incremented by the length ofs.- Specified by:
writeBytesin 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 the
writeCharmethod. If no exception is thrown, the counterwrittenis incremented by twice the length ofs.- Specified by:
writeCharsin interfaceDataOutput- Parameters:
s- aStringvalue 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
writeShortmethod 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 counterwrittenis 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:
writeUTFin interfaceDataOutput- Parameters:
str- a string to be written.- Throws:
UTFDataFormatException- if the modified UTF-8 encoding ofstrwould 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 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.- Returns:
- the value of the
writtenfield. - See Also:
written
-
Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2019, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.