Module java.base
Package java.io

Class DataOutputStream

所有已实现的接口:
Closeable, DataOutput, Flushable, AutoCloseable

public class DataOutputStream extends FilterOutputStream implements DataOutput
数据输出流允许应用程序以可移植的方式将原始Java数据类型写入输出流。然后应用程序可以使用数据输入流将数据读取回来。

DataOutputStream不适合多个并发线程使用。如果要让DataOutputStream被多个线程使用,则应通过适当的同步来控制对数据输出流的访问。

自:
1.0
参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int
    到目前为止写入数据输出流的字节数。

    Fields declared in class java.io.FilterOutputStream

    out
  • Constructor Summary

    Constructors
    Constructor
    Description
    创建一个新的数据输出流,将数据写入指定的底层输出流。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    flush()
    刷新此数据输出流。
    final int
    size()
    返回计数器written的当前值,到目前为止已写入此数据输出流的字节数。
    void
    write(byte[] b, int off, int len)
    从指定的字节数组中写入len字节,从偏移量off开始,到底层输出流。
    void
    write(int b)
    将指定的字节(参数b的低8位)写入底层输出流。
    final void
    writeBoolean(boolean v)
    将一个boolean作为1字节值写入底层输出流。
    final void
    writeByte(int v)
    将一个byte作为1字节值写入底层输出流。
    final void
    将字符串作为字节序列写入底层输出流。
    final void
    writeChar(int v)
    将一个char作为2字节值(高字节在前)写入底层输出流。
    final void
    将字符串作为字符序列写入底层输出流。
    final void
    writeDouble(double v)
    使用Double类中的doubleToLongBits方法将double参数转换为long,然后将该long值作为8字节数量(高字节在前)写入底层输出流。
    final void
    writeFloat(float v)
    使用Float类中的floatToIntBits方法将float参数转换为int,然后将该int值作为4字节数量(高字节在前)写入底层输出流。
    final void
    writeInt(int v)
    将一个int作为四字节(高字节在前)写入底层输出流。
    final void
    writeLong(long v)
    将一个long作为八字节(高字节在前)写入底层输出流。
    final void
    writeShort(int v)
    将一个short作为两字节(高字节在前)写入底层输出流。
    final void
    使用机器无关的方式,使用修改后的UTF-8编码将字符串写入底层输出流。

    Methods declared in class java.io.FilterOutputStream

    close, write

    Methods declared in class java.io.OutputStream

    nullOutputStream

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods declared in interface java.io.DataOutput

    write
  • Field Details

    • written

      protected int written
      到目前为止写入数据输出流的字节数。如果此计数器溢出,它将被包装为Integer.MAX_VALUE。
  • Constructor Details

    • DataOutputStream

      public DataOutputStream(OutputStream out)
      创建一个新的数据输出流,将数据写入指定的底层输出流。计数器written被设置为零。
      参数:
      out - 要保存以供以后使用的底层输出流。
      参见:
  • Method Details

    • write

      public void write(int b) throws IOException
      将指定的字节(参数b的低8位)写入底层输出流。如果没有抛出异常,则计数器written将增加1

      实现OutputStreamwrite方法。

      指定者:
      write 在接口 DataOutput
      覆盖:
      write 在类 FilterOutputStream
      参数:
      b - 要写入的byte
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • write

      public void write(byte[] b, int off, int len) throws IOException
      从指定的字节数组中写入len字节,从偏移量off开始,到底层输出流。如果没有抛出异常,则计数器written将增加len
      指定者:
      write 在接口 DataOutput
      覆盖:
      write 在类 FilterOutputStream
      参数:
      b - 数据。
      off - 数据中的起始偏移量。
      len - 要写入的字节数。
      抛出:
      IOException - 如果发生I/O错误。
      IndexOutOfBoundsException - 如果off为负,len为负,或len大于b.length - off
      参见:
    • flush

      public void flush() throws IOException
      刷新此数据输出流。这将强制将任何缓冲的输出字节写入流中。

      DataOutputStreamflush方法调用其底层输出流的flush方法。

      指定者:
      flush 在接口 Flushable
      覆盖:
      flush 在类 FilterOutputStream
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeBoolean

      public final void writeBoolean(boolean v) throws IOException
      将一个boolean作为1字节值写入底层输出流。值true被写入为值(byte)1;值false被写入为值(byte)0。如果没有抛出异常,则计数器written将增加1
      指定者:
      writeBoolean 在接口 DataOutput
      参数:
      v - 要写入的boolean值。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeByte

      public final void writeByte(int v) throws IOException
      将一个byte作为1字节值写入底层输出流。如果没有抛出异常,则计数器written将增加1
      指定者:
      writeByte 在接口 DataOutput
      参数:
      v - 要写入的byte值。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeShort

      public final void writeShort(int v) throws IOException
      将一个short作为两字节(高字节在前)写入底层输出流。如果没有抛出异常,则计数器written将增加2
      指定者:
      writeShort 在接口 DataOutput
      参数:
      v - 要写入的short
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeChar

      public final void writeChar(int v) throws IOException
      将一个char作为2字节值(高字节在前)写入底层输出流。如果没有抛出异常,则计数器written将增加2
      指定者:
      writeChar 在接口 DataOutput
      参数:
      v - 要写入的char值。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeInt

      public final void writeInt(int v) throws IOException
      将一个int作为四字节(高字节在前)写入底层输出流。如果没有抛出异常,则计数器written将增加4
      指定由:
      writeInt 在接口 DataOutput
      参数:
      v - 要写入的int值。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeLong

      public final void writeLong(long v) throws IOException
      long作为八个字节(高字节优先)写入底层输出流。如果没有抛出异常,则计数器written将增加8
      指定由:
      writeLong 在接口 DataOutput
      参数:
      v - 要写入的long值。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeFloat

      public final void writeFloat(float v) throws IOException
      将浮点参数使用Float类中的floatToIntBits方法转换为int,然后将该int值作为4字节数量(高字节优先)写入底层输出流。如果没有抛出异常,则计数器written将增加4
      指定由:
      writeFloat 在接口 DataOutput
      参数:
      v - 要写入的float值。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeDouble

      public final void writeDouble(double v) throws IOException
      将双精度参数使用Double类中的doubleToLongBits方法转换为long,然后将该long值作为8字节数量(高字节优先)写入底层输出流。如果没有抛出异常,则计数器written将增加8
      指定由:
      writeDouble 在接口 DataOutput
      参数:
      v - 要写入的double值。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeBytes

      public final void writeBytes(String s) throws IOException
      将字符串作为字节序列写入底层输出流。字符串中的每个字符按顺序写入,丢弃其高8位。如果没有抛出异常,则计数器written将增加s的长度。
      指定由:
      writeBytes 在接口 DataOutput
      参数:
      s - 要写入的字节字符串。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeChars

      public final void writeChars(String s) throws IOException
      将字符串作为字符序列写入底层输出流。每个字符都将像writeChar方法一样写入数据输出流。如果没有抛出异常,则计数器written将增加s的长度的两倍。
      指定由:
      writeChars 在接口 DataOutput
      参数:
      s - 要写入的String值。
      抛出:
      IOException - 如果发生I/O错误。
      参见:
    • writeUTF

      public final void writeUTF(String str) throws IOException
      使用机器无关的方式,使用修改的UTF-8编码将字符串写入底层输出流。

      首先,将两个字节写入输出流,就像通过writeShort方法给出要跟随的字节数一样。这个值是实际写出的字节数,而不是字符串的长度。在长度之后,按顺序输出字符串的每个字符,使用修改的UTF-8编码进行编码。如果没有抛出异常,则计数器written将增加写入输出流的总字节数。这将至少是两加上str的长度,并且最多是两加上str的长度的三倍。

      指定由:
      writeUTF 在接口 DataOutput
      参数:
      str - 要写入的字符串。
      抛出:
      UTFDataFormatException - 如果str的修改的UTF-8编码超过65535字节的长度
      IOException - 如果发生其他I/O错误。
      参见:
    • size

      public final int size()
      返回计数器written的当前值,到目前为止写入此数据输出流的字节数。如果计数器溢出,它将被包装为Integer.MAX_VALUE。
      返回:
      written字段的值。
      参见: