モジュール 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
関連項目:
DataInput, DataOutputStream
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    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 writeBytes​(String s)
    文字列を出力ストリームに書き込みます。
    void writeChar​(int v)
    2バイトで構成されるchar値を出力ストリームに書き込みます。
    void writeChars​(String s)
    文字列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 writeUTF​(String s)
    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 - 入出力エラーが発生した場合。