Class DataOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.io.DataOutputStream
All Implemented Interfaces:
Closeable,DataOutput,Flushable,AutoCloseable

public classDataOutputStreamextendsFilterOutputStreamimplementsDataOutput
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. A data output stream wraps another output stream and delegates writing bytes to the write methods of that output stream. Writing data consisting of more than a single byte may cause several writes to the underlying output stream.

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.

Since:
1.0
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int
    The number of bytes written to the data output stream so far.

    Fields declared in class java.io.FilterOutputStream

    out
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new data output stream to write data to the specified underlying output stream.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Flushes this data output stream.
    final int
    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.
    final void
    writeBoolean(boolean v)
    Writes aboolean to the underlying output stream as a 1-byte value.
    final void
    writeByte(int v)
    Writes out abyte to the underlying output stream as a 1-byte value.
    final void
    Writes out the string to the underlying output stream as a sequence of bytes.
    final void
    writeChar(int v)
    Writes achar to the underlying output stream as a 2-byte value, high byte first.
    final void
    Writes a string to the underlying output stream as a sequence of characters.
    final 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.
    final 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.
    final void
    writeInt(int v)
    Writes anint to the underlying output stream as four bytes, high byte first.
    final void
    writeLong(long v)
    Writes along to the underlying output stream as eight bytes, high byte first.
    final void
    writeShort(int v)
    Writes ashort to the underlying output stream as two bytes, high byte first.
    final void
    Writes a string to the underlying output stream usingmodified UTF-8 encoding in a machine-independent manner.

    Methods declared in class java.io.FilterOutputStream

    close,write

    Methods declared in class java.io.OutputStream

    nullOutputStream

    Methods declared in interface java.io.DataOutput

    write
  • 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

      public DataOutputStream(OutputStream out)
      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:
  • Method Details

    • write

      public void write(int b) throwsIOException
      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 thewrite method ofOutputStream.

      Specified by:
      write in interface DataOutput
      Overrides:
      write in class FilterOutputStream
      Parameters:
      b - thebyte to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • write

      public void write(byte[] b, int off, int len) throwsIOException
      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 interface DataOutput
      Overrides:
      write in class FilterOutputStream
      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.
      IndexOutOfBoundsException - Ifoff is negative,len is negative, orlen is greater thanb.length - off
      See Also:
    • flush

      public void flush() throwsIOException
      Flushes this data output stream. This forces any buffered output bytes to be written out to the stream.

      Theflush method ofDataOutputStream calls theflush method of its underlying output stream.

      Specified by:
      flush in interface Flushable
      Overrides:
      flush in class FilterOutputStream
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeBoolean

      public final void writeBoolean(boolean v) throwsIOException
      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 interface DataOutput
      Parameters:
      v - aboolean value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeByte

      public final void writeByte(int v) throwsIOException
      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 interface DataOutput
      Parameters:
      v - abyte value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeShort

      public final void writeShort(int v) throwsIOException
      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 interface DataOutput
      Parameters:
      v - ashort to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeChar

      public final void writeChar(int v) throwsIOException
      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 interface DataOutput
      Parameters:
      v - achar value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeInt

      public final void writeInt(int v) throwsIOException
      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 interface DataOutput
      Parameters:
      v - anint to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeLong

      public final void writeLong(long v) throwsIOException
      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 interface DataOutput
      Parameters:
      v - along to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeFloat

      public final void writeFloat(float v) throwsIOException
      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 interface DataOutput
      Parameters:
      v - afloat value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeDouble

      public final void writeDouble(double v) throwsIOException
      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 interface DataOutput
      Parameters:
      v - adouble value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeBytes

      public final void writeBytes(String s) throwsIOException
      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 interface DataOutput
      Parameters:
      s - a string of bytes to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeChars

      public final void writeChars(String s) throwsIOException
      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 interface DataOutput
      Parameters:
      s - aString value to be written.
      Throws:
      IOException - if an I/O error occurs.
      See Also:
    • writeUTF

      public final void writeUTF(String str) throwsIOException
      Writes a string to the underlying output stream usingmodified UTF-8 encoding in a machine-independent manner.

      First, two bytes are written to the output stream as if by thewriteShort 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 interface DataOutput
      Parameters:
      str - a string to be written.
      Throws:
      UTFDataFormatException - if the modified UTF-8 encoding ofstr would exceed 65535 bytes in length
      IOException - if some other I/O error occurs.
      See Also:
    • 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 thewritten field.
      See Also: