モジュール java.base
パッケージ java.io

インタフェースDataOutput

既知のすべてのサブインタフェース:
ImageOutputStream, ObjectOutput
既知のすべての実装クラス:
DataOutputStream, FileCacheImageOutputStream, FileImageOutputStream, ImageOutputStreamImpl, MemoryCacheImageOutputStream, ObjectOutputStream, RandomAccessFile

public interface DataOutput
DataOutputインタフェースは、Javaのプリミティブ型があればそのデータを一連のバイトに変換してバイナリ・ストリームに書き込むために提供されています。 また、String修正UTF-8形式に変換して結果の一連のバイトを書き込む機能もあります。

このインタフェースのバイトを書き込むすべてのメソッドでは、なんらかの理由でバイトを書き込めない場合は、通常、IOExceptionがスローされます。

導入されたバージョン:
1.0
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    write(byte[] b)
    出力ストリームに配列bのすべてのバイトを書き込みます。
    void
    write(byte[] b, int off, int len)
    配列bからlenバイトを順番に出力ストリームに書き込みます。
    void
    write(int b)
    引数bの下位8ビットを出力ストリームに書き込みます。
    void
    writeBoolean(boolean v)
    1つのboolean値をこの出力ストリームに書き込みます。
    void
    writeByte(int v)
    引数vの8つの下位ビットを出力ストリームに書き込みます。
    void
    文字列を出力ストリームに書き込みます。
    void
    writeChar(int v)
    2バイトで構成されるchar値を出力ストリームに書き込みます。
    void
    文字列s内の各文字を、1文字ごとに2バイトずつ順番に書き込みます。
    void
    writeDouble(double v)
    8バイトで構成されるdouble値を出力ストリームに書き込みます。
    void
    writeFloat(float v)
    4バイトで構成されるfloat値を出力ストリームに書き込みます。
    void
    writeInt(int v)
    4バイトで構成されるint値を出力ストリームに書き込みます。
    void
    writeLong(long v)
    8バイトで構成されるlong値を出力ストリームに書き込みます。
    void
    writeShort(int v)
    引数の値を表す2バイトを出力ストリームに書き込みます。
    void
    2バイトの長さ情報を出力ストリームに書き込みます。その後ろに、文字列s内の各文字の修正UTF-8表現が続きます。
  • メソッドの詳細

    • write

      void write(int b) throws IOException
      引数bの下位8ビットを出力ストリームに書き込みます。 bの上位24ビットは無視されます。
      パラメータ:
      b - 書き込まれるバイト。
      例外:
      IOException - 入出力エラーが発生した場合。
    • write

      void write(byte[] b) throws IOException
      出力ストリームに配列bのすべてのバイトを書き込みます。 bnullの場合、NullPointerExceptionがスローされます。 b.lengthがゼロの場合、バイトは書き込まれません。 それ以外の場合は、最初にバイトb[0]が書き込まれ、次にb[1]という具合に続き、最後に書き込まれるバイトはb[b.length-1]になります。
      パラメータ:
      b - データ。
      例外:
      IOException - 入出力エラーが発生した場合。
    • 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 - 入出力エラーが発生した場合。
    • writeBoolean

      void writeBoolean(boolean v) throws IOException
      1つのboolean値をこの出力ストリームに書き込みます。 引数vtrueの場合は値(byte)1が書き込まれ、vfalseの場合は値(byte)0が書き込まれます。 このメソッドによって書き込まれたバイトは、インタフェースDataInputreadBooleanメソッドによって読み取られ、そのあとに、vに相当するbooleanが返されます。
      パラメータ:
      v - 書き込まれるboolean。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeByte

      void writeByte(int v) throws IOException
      引数vの8つの下位ビットを出力ストリームに書き込みます。 vの上位24ビットは無視されます。 これはwriteByteが、整数引数のwriteとまったく同じであることを意味します。 このメソッドによって書き込まれたバイトは、インタフェースDataInputreadByteメソッドによって読み取られ、そのあとに、(byte)vに相当するbyteが返されます。
      パラメータ:
      v - 書き込まれるバイト値。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeShort

      void writeShort(int v) throws IOException
      引数の値を表す2バイトを出力ストリームに書き込みます。 次に示すバイト値が、この順番で書き込まれます。
      
       (byte)(0xff & (v >> 8))
       (byte)(0xff & v)
       

      このメソッドによって書き込まれたバイトは、インタフェースDataInputreadShortメソッドによって読み取られ、(short)vに等しいshortが返されます。

      パラメータ:
      v - 書き込まれるshort値。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeChar

      void writeChar(int v) throws IOException
      2バイトで構成されるchar値を出力ストリームに書き込みます。 次に示すバイト値が、この順番で書き込まれます。
      
       (byte)(0xff & (v >> 8))
       (byte)(0xff & v)
       

      このメソッドによって書き込まれたバイトは、インタフェースDataInputreadCharメソッドによって読み取られ、(char)vに等しいcharが返されます。

      パラメータ:
      v - 書き込まれるchar値。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeInt

      void writeInt(int v) throws IOException
      4バイトで構成されるint値を出力ストリームに書き込みます。 次に示すバイト値が、この順番で書き込まれます。
      
       (byte)(0xff & (v >> 24))
       (byte)(0xff & (v >> 16))
       (byte)(0xff & (v >>  8))
       (byte)(0xff & v)
       

      このメソッドによって書き込まれたバイトは、インタフェースDataInputreadIntメソッドによって読み取られ、vに等しいintが返されます。

      パラメータ:
      v - 書き込まれるint値。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeLong

      void writeLong(long v) throws IOException
      8バイトで構成される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メソッドによって読み取られ、vに等しいlongが返されます。

      パラメータ:
      v - 書き込まれるlong値。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeFloat

      void writeFloat(float v) throws IOException
      4バイトで構成されるfloat値を出力ストリームに書き込みます。 これは、最初にこのfloat値をFloat.floatToIntBitsメソッドと同じ方法でintに変換し、次にint値をwriteIntメソッドと同じ方法で書き込むようにして行われます。 このメソッドによって書き込まれたバイトは、インタフェースDataInputreadFloatメソッドによって読み取られ、そのあとに、vに相当するfloatが返されます。
      パラメータ:
      v - 書き込まれるfloat値。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeDouble

      void writeDouble(double v) throws IOException
      8バイトで構成されるdouble値を出力ストリームに書き込みます。 これは、最初にこのdouble値をDouble.doubleToLongBitsメソッドと同じ方法でlongに変換し、次にlong値をwriteLongメソッドと同じ方法で書き込むようにして行われます。 このメソッドによって書き込まれたバイトは、インタフェースDataInputreadDoubleメソッドによって読み取られ、そのあとに、vに相当するdoubleが返されます。
      パラメータ:
      v - 書き込まれるdouble値。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeBytes

      void writeBytes(String s) throws IOException
      文字列を出力ストリームに書き込みます。 文字列sの各文字が順番に取り出され、1バイトが出力ストリームに書き込まれます。 snullの場合、NullPointerExceptionがスローされます。

      s.lengthがゼロの場合、バイトは書き込まれません。 それ以外の場合は、最初に文字s[0]が書き込まれ、次にs[1]という具合に続き、最後に書き込まれる文字はs[s.length-1]になります。 各文字については、writeByteメソッドとまったく同じ方法で、1バイト、つまり下位バイトが書き込まれます。 文字列内の各文字の上位8ビットは無視されます。

      パラメータ:
      s - 書き込まれるバイトの文字列。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeChars

      void writeChars(String s) throws IOException
      文字列s内の各文字を、1文字ごとに2バイトずつ順番に書き込みます。 snullの場合、NullPointerExceptionがスローされます。 s.lengthがゼロの場合、書き込まれる文字はありません。 それ以外の場合は、最初に文字s[0]が書き込まれ、次にs[1]という具合に続き、最後に書き込まれる文字はs[s.length-1]になります。 各文字については、writeCharメソッドとまったく同じ方法で、上位バイトを先にして2バイトが実際に書き込まれます。
      パラメータ:
      s - 書き込まれる文字列値。
      例外:
      IOException - 入出力エラーが発生した場合。
    • writeUTF

      void writeUTF(String s) throws IOException
      2バイトの長さ情報を出力ストリームに書き込みます。その後ろに、文字列s内の各文字の修正UTF-8表現が続きます。 snullの場合、NullPointerExceptionがスローされます。 文字列s内の各文字は、文字の値に基づいて、1、2、または3バイトのグループに変換されます。

      文字c\u0001 - \u007fの範囲にある場合、次のような1バイトで表現されます。

      (byte)c 

      文字c\u0000の場合や、\u0080 - \u07ffの範囲にある場合には、次の順序で書き込まれる2バイトによって表されます。

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

      文字c\u0800 - uffffの範囲にある場合、次の順序で書き込まれる3バイトによって表されます。

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

      まず、sのすべての文字を表すのに必要な総バイト数が計算されます。 この数値が65535を超える場合は、UTFDataFormatExceptionがスローされます。 それ以外の場合は、この長さがwriteShortメソッドとまったく同じ方法で出力ストリームに書き込まれます。次に、文字列s内の各文字の1、2、または3バイト表現が書き込まれます。

      このメソッドによって書き込まれたバイトは、インタフェースDataInputreadUTFメソッドによって読み取られ、sに等しいStringが返されます。

      パラメータ:
      s - 書き込まれる文字列値。
      例外:
      IOException - 入出力エラーが発生した場合。