Module java.base
Package java.io

Interface DataOutput

所有已知的子接口:
ImageOutputStream, ObjectOutput
所有已知的实现类:
DataOutputStream, FileCacheImageOutputStream, FileImageOutputStream, ImageOutputStreamImpl, MemoryCacheImageOutputStream, ObjectOutputStream, RandomAccessFile

public interface DataOutput
DataOutput接口提供了将Java原始类型中的任何数据转换为一系列字节并将这些字节写入二进制流的功能。还提供了将String转换为修改后的UTF-8格式并写入生成的字节序列的功能。

对于此接口中写入字节的所有方法,通常情况下,如果由于任何原因无法写入字节,则会抛出IOException

自:
1.0
参见:
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    write(byte[] b)
    将数组b中的所有字节写入输出流。
    void
    write(byte[] b, int off, int len)
    按顺序从数组b中写入len字节到输出流。
    void
    write(int b)
    将参数b的八个低位写入输出流。
    void
    writeBoolean(boolean v)
    boolean值写入此输出流。
    void
    writeByte(int v)
    将参数v的八个低位写入输出流。
    void
    将字符串写入输出流。
    void
    writeChar(int v)
    将由两个字节组成的char值写入输出流。
    void
    将字符串s中的每个字符按顺序每个字符两个字节写入输出流。
    void
    writeDouble(double v)
    将由八个字节组成的double值写入输出流。
    void
    writeFloat(float v)
    将由四个字节组成的float值写入输出流。
    void
    writeInt(int v)
    将由四个字节组成的int值写入输出流。
    void
    writeLong(long v)
    将由八个字节组成的long值写入输出流。
    void
    writeShort(int v)
    写入两个字节到输出流以表示参数的值。
    void
    写入两个字节的长度信息到输出流,然后是字符串s中每个字符的修改后的UTF-8表示。
  • Method Details

    • write

      void write(int b) throws IOException
      将参数b的八个低位写入输出流。忽略b的24个高位。
      参数:
      b - 要写入的字节。
      抛出:
      IOException - 如果发生I/O错误。
    • write

      void write(byte[] b) throws IOException
      将数组b中的所有字节写入输出流。如果bnull,则抛出NullPointerException。如果b.length为零,则不写入任何字节。否则,首先写入字节b[0],然后是b[1],依此类推;最后一个写入的字节是b[b.length-1]
      参数:
      b - 数据。
      抛出:
      IOException - 如果发生I/O错误。
    • write

      void write(byte[] b, int off, int len) throws IOException
      按顺序从数组b中写入len字节到输出流。如果bnull,则抛出NullPointerException。如果off为负数,或者len为负数,或者off+len大于数组b的长度,则抛出IndexOutOfBoundsException。如果len为零,则不写入任何字节。否则,首先写入字节b[off],然后是b[off+1],依此类推;最后一个写入的字节是b[off+len-1]
      参数:
      b - 数据。
      off - 数据中的起始偏移量。
      len - 要写入的字节数。
      抛出:
      IOException - 如果发生I/O错误。
      IndexOutOfBoundsException - 如果off为负数,len为负数,或者len大于b.length - off
    • writeBoolean

      void writeBoolean(boolean v) throws IOException
      boolean值写入此输出流。如果参数vtrue,则写入值(byte)1;如果vfalse,则写入值(byte)0。此方法写入的字节可以由接口DataInputreadBoolean方法读取,该方法将返回等于vboolean
      参数:
      v - 要写入的布尔值。
      抛出:
      IOException - 如果发生I/O错误。
    • writeByte

      void writeByte(int v) throws IOException
      将参数v的八个低位写入输出流。忽略v的24个高位。(这意味着writeByte对于整数参数与write完全相同。)此方法写入的字节可以由接口DataInputreadByte方法读取,该方法将返回等于(byte)vbyte
      参数:
      v - 要写入的字节值。
      抛出:
      IOException - 如果发生I/O错误。
    • writeShort

      void writeShort(int v) throws IOException
      写入两个字节到输出流以表示参数的值。按照显示的顺序写入的字节值为:
      
       (byte)(0xff & (v >> 8))
       (byte)(0xff & v)
       

      此方法写入的字节可以由接口DataInputreadShort方法读取,该方法将返回等于(short)vshort

      参数:
      v - 要写入的short值。
      抛出:
      IOException - 如果发生I/O错误。
    • writeChar

      void writeChar(int v) throws IOException
      将由两个字节组成的char值写入输出流。按照显示的顺序写入的字节值为:
      
       (byte)(0xff & (v >> 8))
       (byte)(0xff & v)
       

      此方法写入的字节可以由接口DataInputreadChar方法读取,该方法将返回等于(char)vchar

      参数:
      v - 要写入的char值。
      抛出:
      IOException - 如果发生I/O错误。
    • writeInt

      void writeInt(int v) throws IOException
      将由四个字节组成的int值写入输出流。按照显示的顺序写入的字节值为:
      
       (byte)(0xff & (v >> 24))
       (byte)(0xff & (v >> 16))
       (byte)(0xff & (v >>  8))
       (byte)(0xff & v)
       

      此方法写入的字节可以由接口DataInputreadInt方法读取,该方法将返回等于vint

      参数:
      v - 要写入的int值。
      抛出:
      IOException - 如果发生I/O错误。
    • writeLong

      void writeLong(long v) throws IOException
      将由八个字节组成的long值写入输出流。按照显示的顺序写入的字节值为:
      
       (byte)(0xff & (v >> 56))
       (byte)(0xff & (v >> 48))
       (byte)(0xff & (v >> 40))
       (byte)(0xff & (v >> 32))
       (byte)(0xff & (v >> 24))
       (byte)(0xff & (v >> 16))
       (byte)(0xff & (v >>  8))
       (byte)(0xff & v)
       

      此方法写入的字节可以由接口DataInputreadLong方法读取,该方法将返回等于vlong

      参数:
      v - 要写入的long值。
      抛出:
      IOException - 如果发生I/O错误。
    • writeFloat

      void writeFloat(float v) throws IOException
      将由四个字节组成的float值写入输出流。它会将此float值按照Float.floatToIntBits方法的方式转换为int,然后以writeInt方法的方式写入int值。此方法写入的字节可以由接口DataInputreadFloat方法读取,该方法将返回等于vfloat
      参数:
      v - 要写入的float值。
      抛出:
      IOException - 如果发生I/O错误。
    • writeDouble

      void writeDouble(double v) throws IOException
      将由八个字节组成的double值写入输出流。它会将这个double值转换为long值,方法与Double.doubleToLongBits方法完全相同,然后以writeLong方法的方式写入long值。此方法写入的字节可以被接口DataInputreadDouble方法读取,该方法将返回一个等于vdouble值。
      参数:
      v - 要写入的double值。
      抛出:
      IOException - 如果发生I/O错误。
    • writeBytes

      void writeBytes(String s) throws IOException
      将字符串写入输出流。对于字符串s中的每个字符,按顺序写入一个字节到输出流。如果snull,则会抛出NullPointerException

      如果s.length为零,则不会写入任何字节。否则,首先写入字符s[0],然后是s[1],依此类推;最后一个写入的字符是s[s.length-1]。对于每个字符,将写入一个字节,即低位字节,方法与writeByte方法完全相同。字符串中每个字符的高位八位将被忽略。

      参数:
      s - 要写入的字节字符串。
      抛出:
      IOException - 如果发生I/O错误。
    • writeChars

      void writeChars(String s) throws IOException
      将字符串s中的每个字符按顺序写入输出流,每个字符两个字节。如果snull,则会抛出NullPointerException。如果s.length为零,则不会写入任何字符。否则,首先写入字符s[0],然后是s[1],依此类推;最后一个写入的字符是s[s.length-1]。对于每个字符,实际上会写入两个字节,高位字节优先,方法与writeChar方法完全相同。
      参数:
      s - 要写入的字符串值。
      抛出:
      IOException - 如果发生I/O错误。
    • writeUTF

      void writeUTF(String s) throws IOException
      向输出流写入两个字节的长度信息,然后是字符串s中每个字符的修改后的UTF-8表示。如果snull,则会抛出NullPointerException。字符串s中的每个字符将根据字符的值转换为一个、两个或三个字节的组。

      如果字符c\u0001\u007f范围内,则用一个字节表示:

      (byte)c 

      如果字符c\u0000或在\u0080\u07ff范围内,则用两个字节表示,按照以下顺序写入:

      
       (byte)(0xc0 | (0x1f & (c >> 6)))
       (byte)(0x80 | (0x3f & c))
       

      如果字符c\u0800uffff范围内,则用三个字节表示,按照以下顺序写入:

      
       (byte)(0xe0 | (0x0f & (c >> 12)))
       (byte)(0x80 | (0x3f & (c >>  6)))
       (byte)(0x80 | (0x3f & c))
       

      首先计算表示字符串s的所有字符所需的总字节数。如果此数字大于65535,则会抛出UTFDataFormatException。否则,将以与writeShort方法完全相同的方式将此长度写入输出流;之后,将写入字符串s中每个字符的一个、两个或三个字节的表示。

      此方法写入的字节可以被接口DataInputreadUTF方法读取,该方法将返回一个等于sString

      参数:
      s - 要写入的字符串值。
      抛出:
      IOException - 如果发生I/O错误。