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

クラスByteBuffer

  • すべての実装されたインタフェース:
    Comparable<ByteBuffer>
    直系の既知のサブクラス:
    MappedByteBuffer


    public abstract class ByteBuffer
    extends Buffer
    implements Comparable<ByteBuffer>
    byteバッファです。

    このクラスは、byteバッファに対する操作を次の6つのカテゴリに分類します。

    • 単一byte値の読み込みと書込みを行う絶対および相対get/putメソッド。

    • 連続したbyteシーケンスをこのバッファから配列へと転送する相対一括getメソッド。

    • 連続したbyteシーケンスをbyte配列やその他のbyteバッファからこのバッファへと転送する相対一括putメソッド。

    • その他のプリミティブ型の値の読み込みと書込みを行い、これらの値とbyteシーケンスを特定のbyte順序で相互変換する、絶対および相対get/putメソッド。

    • その他のプリミティブ型の値を格納するバッファとしてbyteバッファを表示できる、「ビュー・バッファ」の作成メソッド

    • compactingバイト・バッファのメソッド。

    byteバッファを作成するには、バッファの内容に容量を割り当てる割り当て,を実行するか、既存のbyte配列をバッファ内にラップします。

    ダイレクト・バッファ非ダイレクト・バッファ

    byteバッファには、「ダイレクト」バッファと「非ダイレクト」バッファがあります。 ダイレクトbyteバッファの場合、Java仮想マシンは、ネイティブの入出力操作を直接実行しようとします。 これは、基本となるオペレーティング・システム固有の入出力操作を呼び出す際、中間バッファを介さないということです。

    ダイレクトbyteバッファは、このクラスのファクトリ・メソッドallocateDirectを呼び出すと作成されます。 通常は、こちらのバッファのほうが、非ダイレクト・バッファよりも割当ておよび解放コストがやや高くなります。 ダイレクト・バッファの内容が標準のガベージ・コレクトされたヒープの外部にあるなら、アプリケーションのメモリー・フットプリントに対する影響はわずかです。 このことから、ダイレクト・バッファには、基本となるシステム固有の入出力操作に従属する、寿命が長く容量の大きいバッファを指定することをお薦めします。 一般に、ダイレクト・バッファの割当ては、プログラムの性能を十分に改善できる見込みがある場合にのみ行うべきです。

    ダイレクトbyteバッファは、ファイルの特定の領域をメモリーに直接マッピングする方法でも作成できます。 Javaプラットフォームの実装によっては、JNIを介してネイティブ・コードからダイレクトbyteバッファを生成する機能がオプションでサポートされている可能性があります。 こうした種類のバッファのインスタンスが、メモリー内のアクセスできない領域を参照した場合、その領域にアクセスしようとしてもバッファの内容は変更されず、アクセス時またはアクセス後に何らかの例外がスローされます。

    特定のbyteバッファがダイレクト・バッファ、非ダイレクト・バッファのどちらであるかを判断するには、isDirectメソッドを呼び出します。 このメソッドを使用すると、性能が重視されるコード内で明示的にバッファ管理を行えます。

    バイナリ・データへのアクセス

    このクラスには、その他のすべてのプリミティブ型(booleanを除く)の値の読み込みと書込みを行うメソッドが定義されています。 プリミティブ値とbyteシーケンスとの相互変換は、バッファの現在のbyte順序に従って行われます。byte順序を取得および変更するには、orderメソッドを使用します。 特定のbyte順序は、ByteOrderクラスのインスタンスで表されます。 byteバッファの初期順序は、常にBIG_ENDIANです。

    異種バイナリ・データ、すなわち型の異なる値のシーケンスにアクセスできるようにするため、このクラスは、型ごとに一連の絶対および相対get/putメソッドのファミリを定義します。 たとえば、32ビットの浮動小数点数(float値)の場合、次のメソッドが定義されます。

     float  getFloat()
     float  getFloat(int index)
      void  putFloat(float f)
      void  putFloat(int index, float f)

    char、short、int、long、およびdoubleの各型にも、同様のメソッドが定義されています。 絶対get/putメソッドのインデックス・パラメータの単位は、読み込みまたは書込みの対象となる型ではなく、byteです。

    同種のバイナリ・データ、すなわち同じ型の値のシーケンスにアクセスできるようにするため、このクラスには、指定されたbyteバッファのビューを作成できるメソッドが定義されています。 ビュー・バッファとは、byteバッファに連動した内容を持つ、別のバッファのことです。 byteバッファの内容に変更を加えると、ビュー・バッファにもその内容が反映されます。反対に、ビュー・バッファの内容に変更を加えると、byteバッファにもその内容が反映されます。この2つのバッファの位置、リミット、マークの値は、それぞれ独立しています。 たとえば、asFloatBufferメソッドは、このメソッドの呼出し元のbyteバッファに連動したFloatBufferクラスのインスタンスを作成します。 char、short、int、long、およびdoubleの各型にも、同様のビュー作成メソッドが定義されています。

    ビュー・バッファには、前述した一連の型固有のget/putメソッドに勝る重要な利点が3つあります。

    • ビュー・バッファには、byteではなく、その値の型固有のサイズによってインデックスが付けられる

    • ビュー・バッファは、バッファと配列または同じ型のその他のバッファ間で連続した値のシーケンスをやりとりできる、相対一括get/putメソッドを提供する

    • ビュー・バッファは、補助byteバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになるという点で、潜在的に効率がよい

    ビュー・バッファのbyte順序は、ビューの生成時にbyteバッファと同じものに固定されます。

    呼出しの連鎖

    このクラスのメソッドのうち戻り値を返さないものは、自身を呼び出したバッファの情報を返します。 これを応用して、メソッド呼出しを連鎖させることができます。 たとえば、次のような連続した文があるとしましょう。

     bb.putInt(0xCAFEBABE);
     bb.putShort(3);
     bb.putShort(45);
    これらは、次の一文で置き換えられます。
     bb.putInt(0xCAFEBABE).putShort(3).putShort(45);
    導入されたバージョン:
    1.4
    • メソッドのサマリー

      すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      ByteBuffer alignedSlice​(int unitSize)
      このバッファの内容の共有されて整列されたサブ・シーケンスである内容を持つ新しいバイト・バッファを作成します。
      int alignmentOffset​(int index, int unitSize)
      指定されたインデックスのバイトを指し示すメモリー・アドレスを返します。指定された単位サイズをモジュラ・スとして返します。
      static ByteBuffer allocate​(int capacity)
      新しいbyteバッファを割り当てます。
      static ByteBuffer allocateDirect​(int capacity)
      新しいダイレクトbyteバッファを割り当てます。
      byte[] array​()
      このバッファを補助するbyte配列を返します  (オプションの操作)
      int arrayOffset​()
      このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します  (オプションの操作)
      abstract CharBuffer asCharBuffer​()
      charバッファとしてこのbyteバッファのビューを作成します。
      abstract DoubleBuffer asDoubleBuffer​()
      doubleバッファとしてこのbyteバッファのビューを作成します。
      abstract FloatBuffer asFloatBuffer​()
      floatバッファとしてこのbyteバッファのビューを作成します。
      abstract IntBuffer asIntBuffer​()
      intバッファとしてこのbyteバッファのビューを作成します。
      abstract LongBuffer asLongBuffer​()
      longバッファとしてこのbyteバッファのビューを作成します。
      abstract ByteBuffer asReadOnlyBuffer​()
      このバッファの内容を共有する新しい読込み専用byteバッファを作成します。
      abstract ShortBuffer asShortBuffer​()
      shortバッファとしてこのbyteバッファのビューを作成します。
      ByteBuffer clear​()
      このバッファをクリアします。
      abstract ByteBuffer compact​()
      このバッファを圧縮します  (オプションの操作)
      int compareTo​(ByteBuffer that)
      このバッファを別のバッファと比較します。
      abstract ByteBuffer duplicate​()
      このバッファの内容を共有する新しいbyteバッファを作成します。
      boolean equals​(Object ob)
      このバッファが別のオブジェクトと等価であるかどうかを判断します。
      ByteBuffer flip​()
      このバッファをフリップ(反転)します。
      abstract byte get​()
      相対getメソッドです。
      ByteBuffer get​(byte[] dst)
      相対一括getメソッドです。
      ByteBuffer get​(byte[] dst, int offset, int length)
      相対一括getメソッドです。
      abstract byte get​(int index)
      絶対getメソッドです。
      abstract char getChar​()
      char値を読み取る相対getメソッドです。
      abstract char getChar​(int index)
      char値を読み取る絶対getメソッドです。
      abstract double getDouble​()
      double値を読み取る相対getメソッドです。
      abstract double getDouble​(int index)
      double値を読み取る絶対getメソッドです。
      abstract float getFloat​()
      float値を読み取る相対getメソッドです。
      abstract float getFloat​(int index)
      float値を読み取る絶対getメソッドです。
      abstract int getInt​()
      int値を読み取る相対getメソッドです。
      abstract int getInt​(int index)
      int値を読み取る絶対getメソッドです。
      abstract long getLong​()
      long値を読み取る相対getメソッドです。
      abstract long getLong​(int index)
      long値を読み取る絶対getメソッドです。
      abstract short getShort​()
      short値を読み取る相対getメソッドです。
      abstract short getShort​(int index)
      short値を読み取る絶対getメソッドです。
      boolean hasArray​()
      このバッファがアクセス可能なbyte配列に連動するかどうかを判断します。
      int hashCode​()
      このバッファの現在のハッシュ・コードを返します。
      abstract boolean isDirect​()
      このbyteバッファがダイレクト・バッファであるかどうかを判断します。
      ByteBuffer limit​(int newLimit)
      このバッファのリミットを設定します。
      ByteBuffer mark​()
      このバッファの現在位置にマークを設定します。
      ByteOrder order​()
      このバッファのbyte順序を取得します。
      ByteBuffer order​(ByteOrder bo)
      このバッファのbyte順序を変更します。
      ByteBuffer position​(int newPosition)
      このバッファの位置を設定します。
      abstract ByteBuffer put​(byte b)
      相対putメソッドです  (オプションの操作)
      ByteBuffer put​(byte[] src)
      相対一括putメソッドです  (オプションの操作)
      ByteBuffer put​(byte[] src, int offset, int length)
      相対一括putメソッドです  (オプションの操作)
      abstract ByteBuffer put​(int index, byte b)
      絶対putメソッドです  (オプションの操作)
      ByteBuffer put​(ByteBuffer src)
      相対一括putメソッドです  (オプションの操作)
      abstract ByteBuffer putChar​(char value)
      char値を書き込む相対putメソッドです  (オプションの操作)
      abstract ByteBuffer putChar​(int index, char value)
      char値を書き込む絶対putメソッドです  (オプションの操作)
      abstract ByteBuffer putDouble​(double value)
      double値を書き込む相対putメソッドです  (オプションの操作)
      abstract ByteBuffer putDouble​(int index, double value)
      double値を書き込む絶対putメソッドです  (オプションの操作)
      abstract ByteBuffer putFloat​(float value)
      float値を書き込む相対putメソッドです  (オプションの操作)
      abstract ByteBuffer putFloat​(int index, float value)
      float値を書き込む絶対putメソッドです  (オプションの操作)
      abstract ByteBuffer putInt​(int value)
      int値を書き込む相対putメソッドです  (オプションの操作)
      abstract ByteBuffer putInt​(int index, int value)
      int値を書き込む絶対putメソッドです  (オプションの操作)
      abstract ByteBuffer putLong​(int index, long value)
      long値を書き込む絶対putメソッドです  (オプションの操作)
      abstract ByteBuffer putLong​(long value)
      long値を書き込む相対putメソッドです  (オプションの操作)
      abstract ByteBuffer putShort​(int index, short value)
      short値を書き込む絶対putメソッドです  (オプションの操作)
      abstract ByteBuffer putShort​(short value)
      short値を書き込む相対putメソッドです  (オプションの操作)
      ByteBuffer reset​()
      バッファの位置を以前にマークした位置に戻します。
      ByteBuffer rewind​()
      このバッファをリワインド(巻き戻し)します。
      abstract ByteBuffer slice​()
      このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。
      String toString​()
      このバッファの状態を要約した文字列を返します。
      static ByteBuffer wrap​(byte[] array)
      byte配列をバッファにラップします。
      static ByteBuffer wrap​(byte[] array, int offset, int length)
      byte配列をバッファにラップします。
    • メソッドの詳細

      • allocateDirect

        public static ByteBuffer allocateDirect​(int capacity)
        新しいダイレクトbyteバッファを割り当てます。

        新しいバッファの位置はゼロになり、限界はその容量になり、マークは未定義になり、各要素はゼロに初期化され、バイト順はBIG_ENDIANになります。 補助配列を利用するかどうかは指定されません。

        パラメータ:
        capacity - 新しいバッファの容量(byte)
        戻り値:
        新しいbyteバッファ
        例外:
        IllegalArgumentException - capacityが負の整数である場合
      • allocate

        public static ByteBuffer allocate​(int capacity)
        新しいbyteバッファを割り当てます。

        新しいバッファの位置はゼロになり、限界はその容量になり、マークは未定義になり、各要素はゼロに初期化され、バイト順はBIG_ENDIANになります。 補助配列を持ち、配列オフセットはゼロになります。

        パラメータ:
        capacity - 新しいバッファの容量(byte)
        戻り値:
        新しいbyteバッファ
        例外:
        IllegalArgumentException - capacityが負の整数である場合
      • wrap

        public static ByteBuffer wrap​(byte[] array,
                                      int offset,
                                      int length)
        byte配列をバッファにラップします。

        新しいバッファは指定されたbyte配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量はarray.lengthになり、その位置はoffsetになり、その制限はoffset + lengthになり、そのマークは未定義になり、バイト順はBIG_ENDIANになります。 指定された配列が補助配列となり、その配列オフセットはゼロになります。

        パラメータ:
        array - 新しいバッファを補助する配列
        offset -使用するサブ配列のオフセット。array.length以下の負でない値でなければならない。 新しいバッファの位置は、この値に設定される。
        length - 使用するサブ配列の長さ。array.length - offset以下の負でない値でなければならない。 新しいバッファのリミットは、offset+lengthに設定される。
        戻り値:
        新しいbyteバッファ
        例外:
        IndexOutOfBoundsException - offsetパラメータとlengthパラメータの前提条件が満たされていない場合
      • wrap

        public static ByteBuffer wrap​(byte[] array)
        byte配列をバッファにラップします。

        新しいバッファは指定されたbyte配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量とリミットはarray.lengthになり、その位置はゼロになり、マークは未定義になり、バイト順はBIG_ENDIANになります。 指定された配列が補助配列となり、その配列オフセットはゼロになります。

        パラメータ:
        array - このバッファを補助する配列
        戻り値:
        新しいbyteバッファ
      • slice

        public abstract ByteBuffer slice​()
        このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。

        新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの位置はゼロになり、その容量とその制限はこのバッファに残っているバイト数になり、そのマークは未定義になり、バイト順はBIG_ENDIANになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

        定義:
        クラスBufferslice
        戻り値:
        新しいbyteバッファ
        関連項目:
        alignedSlice(int)
      • duplicate

        public abstract ByteBuffer duplicate​()
        このバッファの内容を共有する新しいbyteバッファを作成します。

        新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの容量、限界、位置、およびマークの値は、このバッファのものと同じになり、バイト・オーダーはBIG_ENDIANになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

        定義:
        クラスBufferduplicate
        戻り値:
        新しいbyteバッファ
      • asReadOnlyBuffer

        public abstract ByteBuffer asReadOnlyBuffer​()
        このバッファの内容を共有する新しい読込み専用byteバッファを作成します。

        新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。しかし、新しいバッファ自体は読取り専用であり、その共有内容を変更することはできません。 2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの容量、限界、位置、およびマークの値は、このバッファのものと同じになり、バイト・オーダーはBIG_ENDIANになります。

        このバッファ自身が読込み専用の場合は、このメソッドはduplicateと同じように動作します。

        戻り値:
        新しい読込み専用byteバッファ
      • get

        public abstract byte get​()
        相対getメソッドです。 このバッファの現在位置からbyteを読み込み、現在位置の値を増加します。
        戻り値:
        バッファの現在位置のbyte
        例外:
        BufferUnderflowException - バッファの現在位置がリミット以上である場合
      • put

        public abstract ByteBuffer put​(byte b)
        相対putメソッドです  (オプションの操作)

        バッファの現在位置に指定されたbyteを書き込み、現在位置の値を増加します。

        パラメータ:
        b - 書き込まれるbyte
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファの現在位置がリミット以上である場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • get

        public abstract byte get​(int index)
        絶対getメソッドです。 指定されたインデックス位置のbyteを読み込みます。
        パラメータ:
        index - byteの読込み位置を示すインデックス
        戻り値:
        指定されたインデックス位置のbyte
        例外:
        IndexOutOfBoundsException - indexが負の数である場合、またはバッファのリミット以上である場合
      • put

        public abstract ByteBuffer put​(int index,
                                       byte b)
        絶対putメソッドです  (オプションの操作)

        このバッファの指定されたインデックス位置に指定されたbyteを書き込みます。

        パラメータ:
        index - byteの書込み先を示すインデックス
        b - 書き込まれるbyte値
        戻り値:
        このバッファ
        例外:
        IndexOutOfBoundsException - indexが負の数である場合、またはバッファのリミット以上である場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • get

        public ByteBuffer get​(byte[] dst,
                              int offset,
                              int length)
        相対一括getメソッドです。

        このメソッドは、このバッファから指定された配列へbyteを転送します。 このバッファ内に残っているbyte数が要求に満たない場合(つまり、length > remaining()である場合)、byteは一切転送されず、BufferUnderflowExceptionがスローされます。

        それ以外の場合、このメソッドは、length個のbyteを、このバッファの現在位置から指定された配列の指定されたオフセット位置へコピーします。 そのたびに、このバッファの位置がlengthずつ増加します。

        このメソッドをsrc.get(dst, off, len)の形式で呼び出すと、次のループとまったく同じ結果になります。

        
             for (int i = off; i < off + len; i++)
                 dst[i] = src.get():
         
        ただし、このバッファ内に十分な数のbyte数があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。
        パラメータ:
        dst - byteの書込み先となる配列
        offset - 最初のbyteの書込み先となる配列内のオフセット。dst.length以下の負でない値でなければならない
        length - 指定された配列に書き込まれる最大byte数。dst.length - offset以下の負でない値でなければならない
        戻り値:
        このバッファ
        例外:
        BufferUnderflowException - このバッファ内に残っているbyte数がlengthよりも少ない場合
        IndexOutOfBoundsException - offsetパラメータとlengthパラメータの前提条件が満たされていない場合
      • get

        public ByteBuffer get​(byte[] dst)
        相対一括getメソッドです。

        このメソッドは、このバッファから指定された配列へbyteを転送します。 このメソッドをsrc.get(a)の形式で呼び出すと、次の呼び出しと同じ結果になります。

             src.get(a, 0, a.length) 
        パラメータ:
        dst - コピー先配列
        戻り値:
        このバッファ
        例外:
        BufferUnderflowException - このバッファ内に残っているbyte数がlengthよりも少ない場合
      • put

        public ByteBuffer put​(ByteBuffer src)
        相対一括putメソッドです  (オプションの操作)

        このメソッドは、指定されたソース・バッファ内に残っているbyteをこのバッファへ転送します。 ソース・バッファ内に残っているbyte数がこのバッファ内に残っているbyte数よりも多い場合(つまり、src.remaining() > remaining()である場合)、byteは一切転送されず、BufferOverflowExceptionがスローされます。

        それ以外の場合、このメソッドは、指定されたバッファの現在位置からこのバッファの現在位置へn = src.remaining() byteをコピーします。 そのたびに、両方のバッファの位置がnずつ増加します。

        このメソッドをdst.put(src)の形式で呼び出すと、次のループとまったく同じ結果になります。

             while (src.hasRemaining())
                 dst.put(src.get()); 
        ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。
        パラメータ:
        src - byteの読込み先となるソース・バッファ(このバッファ以外)
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファに、ソース・バッファ内に残っているbyteを格納できるだけの容量がない場合
        IllegalArgumentException - ソース・バッファとしてこのバッファを指定した場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • put

        public ByteBuffer put​(byte[] src,
                              int offset,
                              int length)
        相対一括putメソッドです  (オプションの操作)

        このメソッドは、指定されたソース配列からこのバッファへbyteを転送します。 配列からコピーするbyte数がこのバッファ内に残っているbyte数より多い場合(つまり、length > remaining()である場合)、byteは一切転送されず、BufferOverflowExceptionがスローされます。

        それ以外の場合、このメソッドは、指定された配列の指定されたオフセット位置からこのバッファの現在位置へlength個のbyteをコピーします。 そのたびに、このバッファの位置がlengthずつ増加します。

        このメソッドをdst.put(src, off, len)の形式で呼び出すと、次のループとまったく同じ結果になります。

        
             for (int i = off; i < off + len; i++)
                 dst.put(a[i]);
         
        ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。
        パラメータ:
        src - byteの読込み先となる配列
        offset - 最初のbyteの読込み先となる配列内のオフセット。array.length以下の負でない値にする必要がある
        length - 指定された配列から読み取られるbyte数。array.length - offset以下の負でない値でなければならない
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファ内に残っている容量が不足している場合
        IndexOutOfBoundsException - offsetパラメータとlengthパラメータの前提条件が満たされていない場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • put

        public final ByteBuffer put​(byte[] src)
        相対一括putメソッドです  (オプションの操作)

        このメソッドは、ソースとなる指定されたbyte配列の内容全体をこのバッファへ転送します。 このメソッドをdst.put(a)の形式で呼び出すと、次の呼び出しと同じ結果になります。

             dst.put(a, 0, a.length) 
        パラメータ:
        src - 転送元配列
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファ内に残っている容量が不足している場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • hasArray

        public final boolean hasArray​()
        このバッファがアクセス可能なbyte配列に連動するかどうかを判断します。

        このメソッドの戻り値がtrueであれば、arrayおよびarrayOffsetメソッドを安全に呼び出すことができます。

        定義:
        hasArray、クラス: Buffer
        戻り値:
        このバッファが配列に連動しており、読取り専用でない場合にかぎりtrue
      • array

        public final byte[] array​()
        このバッファを補助するbyte配列を返します  (オプションの操作)

        このバッファの内容に変更を加えると、返される配列の内容も変更されます。その逆も同様です。

        このメソッドを呼び出す前にhasArrayメソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。

        定義:
        array、クラス: Buffer
        戻り値:
        このバッファを補助する配列
        例外:
        ReadOnlyBufferException - このバッファが配列に連動しており、しかも読込み専用である場合
        UnsupportedOperationException - このバッファがアクセス可能な配列を利用しない場合
      • arrayOffset

        public final int arrayOffset​()
        このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します  (オプションの操作)

        このバッファが配列に連動していれば、その位置pが配列のインデックスp + arrayOffset()と一致します。

        このメソッドを呼び出す前にhasArrayメソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。

        定義:
        arrayOffset、クラス: Buffer
        戻り値:
        このバッファの配列内にある、このバッファの最初の要素のオフセット
        例外:
        ReadOnlyBufferException - このバッファが配列に連動しており、しかも読込み専用である場合
        UnsupportedOperationException - このバッファがアクセス可能な配列を利用しない場合
      • position

        public ByteBuffer position​(int newPosition)
        このバッファの位置を設定します。 新しい位置の値よりもマークの値のほうが大きい場合、マークの定義は破棄されます。
        オーバーライド:
        クラスBufferposition
        パラメータ:
        newPosition - 新しい位置の値は、現在のリミット以下の負でない値でなければならない
        戻り値:
        このバッファ
      • limit

        public ByteBuffer limit​(int newLimit)
        このバッファのリミットを設定します。 位置の値が新しいリミットより大きい場合、リミットと同じ値に変更されます。 マークの値が新しいリミットより大きい場合、マークの定義は破棄されます。
        オーバーライド:
        クラスBufferlimit
        パラメータ:
        newLimit - 新しいリミット値は、このバッファの容量以下の負でない値でなければならない
        戻り値:
        このバッファ
      • mark

        public ByteBuffer mark​()
        このバッファの現在位置にマークを設定します。
        オーバーライド:
        クラスBuffermark
        戻り値:
        このバッファ
      • reset

        public ByteBuffer reset​()
        バッファの位置を以前にマークした位置に戻します。

        このメソッドを呼び出しても、マークの値は変更されません。マークが破棄されることもありません。

        オーバーライド:
        クラスBufferreset
        戻り値:
        このバッファ
      • clear

        public ByteBuffer clear​()
        このバッファをクリアします。 バッファの位置はゼロ、リミットは容量の値に設定されます。マークは破棄されます。

        一連のチャネル読込み操作またはput操作を使用してこのバッファにデータを格納する前に、このメソッドを呼び出します。 次に例を示します。

         buf.clear();     // Prepare buffer for reading
         in.read(buf);    // Read data

        このメソッドはバッファ内のデータを実際に消去するわけではありません。しかし、そうした状況で使用されるため、クリアと命名されています。

        オーバーライド:
        クラスBufferclear
        戻り値:
        このバッファ
      • flip

        public ByteBuffer flip​()
        このバッファをフリップ(反転)します。 リミットは現在位置の値に設定され、現在位置を表す値はゼロに設定されます。 マークが定義されている場合、そのマークは破棄されます。

        一連のチャネル読込み操作(put)のあと、このメソッドを呼び出してチャネル書込み操作(相対get)の準備を行います。 次に例を示します。

         buf.put(magic);    // Prepend header
         in.read(buf);      // Read data into rest of buffer
         buf.flip();        // Flip buffer
         out.write(buf);    // Write header + data to channel

        ある場所から別の場所にデータを転送する際、このメソッドをcompactメソッドと組み合わせて使用することがあります。

        オーバーライド:
        クラスBufferflip
        戻り値:
        このバッファ
      • rewind

        public ByteBuffer rewind​()
        このバッファをリワインド(巻き戻し)します。 位置はゼロに設定され、マークは破棄されます。

        このメソッドは、リミットを正しく設定したあと、一連のチャネル書込み操作(get)の前に呼び出します。 次に例を示します。

         out.write(buf);    // Write remaining data
         buf.rewind();      // Rewind buffer
         buf.get(array);    // Copy data into array
        オーバーライド:
        クラスBufferrewind
        戻り値:
        このバッファ
      • compact

        public abstract ByteBuffer compact​()
        このバッファを圧縮します  (オプションの操作)

        バッファの現在位置からリミットまでの間にbyteが存在する場合、これらをバッファの先頭にコピーします。 つまり、インデックス位置p = position()のbyteがインデックス・ゼロにコピーされ、インデックス位置p + 1のbyteがインデックス1にコピーされるということです。インデックス位置limit() - 1のbyteがインデックスn = limit() - 1 - pにコピーされるまで、同様の処理が繰り返されます。 最終的にバッファの位置はn+1に設定され、リミットは容量の値と等しくなります。 マークは破棄されます。

        バッファの位置は、ゼロではなく、コピーされるbyte数と等しくなります。したがって、このメソッドを呼び出したあと、すぐに別の相対「put」メソッドを呼び出すことができます。

        このメソッドは、書込みが終了しなかった場合にバッファからのデータの書込みを実行する前に呼び出します。 次のループは、バッファbufを使って、あるチャネルから別のチャネルにbyteをコピーします。

        
           buf.clear();          // Prepare buffer for use
           while (in.read(buf) >= 0 || buf.position != 0) {
               buf.flip();
               out.write(buf);
               buf.compact();    // In case of partial write
           }
         
        戻り値:
        このバッファ
        例外:
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • isDirect

        public abstract boolean isDirect​()
        このbyteバッファがダイレクト・バッファであるかどうかを判断します。
        定義:
        isDirect、クラス: Buffer
        戻り値:
        このバッファがダイレクト・バッファである場合にかぎりtrue
      • toString

        public String toString​()
        このバッファの状態を要約した文字列を返します。
        オーバーライド:
        toString、クラス: Object
        戻り値:
        サマリー文字列
      • hashCode

        public int hashCode​()
        このバッファの現在のハッシュ・コードを返します。

        byteバッファのハッシュ・コードは、バッファ内に残っている要素、すなわちposition()からlimit() - 1までの要素のみに依存します。

        バッファのハッシュ・コードは内容依存型です。今後バッファの内容が変更されないことが明らかでないかぎり、バッファをハッシュ・マップその他のデータ構造のキーとして使用することは避けてください。

        オーバーライド:
        hashCode、クラス: Object
        戻り値:
        このバッファの現在のハッシュ・コード
        関連項目:
        Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
      • equals

        public boolean equals​(Object ob)
        このバッファが別のオブジェクトと等価であるかどうかを判断します。

        2つのbyteバッファは、次の場合にかぎり等価です。

        1. 要素の型が同じである

        2. バッファ内に残っている要素数が同じである

        3. バッファ内に残っている要素のシーケンス(開始位置とは無関係)が各点で等しい(pointwise equal)

        byteバッファが、その他の型のオブジェクトと等価になることはありません。

        オーバーライド:
        equals、クラス: Object
        パラメータ:
        ob - このバッファと比較するオブジェクト
        戻り値:
        このバッファが指定されたオブジェクトと等価である場合にかぎりtrue
        関連項目:
        Object.hashCode()HashMap
      • compareTo

        public int compareTo​(ByteBuffer that)
        このバッファを別のバッファと比較します。

        2つのbyteバッファを比較する際は、バッファ内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファ内に残っているシーケンスの開始位置は考慮されません。 Byte.compare(byte,byte)を呼び出したかのように、byte要素のペアが比較されます。

        byteバッファとその他の型のオブジェクトを比較することはできません。

        定義:
        compareTo、インタフェース: Comparable<ByteBuffer>
        パラメータ:
        that - 比較対象のオブジェクト。
        戻り値:
        このバッファが指定されたバッファより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
      • order

        public final ByteOrder order​()
        このバッファのbyte順序を取得します。

        byte順序は、複数バイトの値を読み取るときや書き込むとき、そしてこのbyteバッファのビューとなるバッファを作成するときに使用します。 新しく作成されたbyteバッファの順序は常にBIG_ENDIANになります。

        戻り値:
        このバッファのbyte順序
      • order

        public final ByteBuffer order​(ByteOrder bo)
        このバッファのbyte順序を変更します。
        パラメータ:
        bo - 新しいbyte順序。BIG_ENDIANまたはLITTLE_ENDIANのいずれか
        戻り値:
        このバッファ
      • alignmentOffset

        public final int alignmentOffset​(int index,
                                         int unitSize)
        指定されたインデックスのバイトを指し示すメモリー・アドレスを返します。指定された単位サイズをモジュラ・スとして返します。

        戻り値がゼロより大きい場合は、インデックスのバイトのアドレスがユニット・サイズの位置がずれていることを示し、値の量は、整列したアドレスにバイトを整列するためにインデックスを切り上げるか、または下げるかを示します。 それ以外の場合、0の値は、インデックスにあるバイトのアドレスがユニット・サイズのために整列されていることを示します。

        APIの注:
        このメソッドは、ネイティブ・プラットフォームでサポートされている場合、インデックスからの単位サイズ・バイトに原子的にアクセスできるかどうかを判断するために利用できます。
        実装上の注意:
        この実装は、指定されたユニット・サイズが8より大きい場合、非ダイレクト・バッファ用のUnsupportedOperationExceptionをスローします。
        パラメータ:
        index - 整列オフセットを問合せする索引は、ネガティブでなければならず、上限のチェックも行われません
        unitSize - 単位サイズはバイトで、2の累乗でなければなりません
        戻り値:
        インデックス付きバイト・メモリー・アドレス・モジュラ・ス単位サイズ
        例外:
        IllegalArgumentException - インデックスが負の場合、またはユニット・サイズが2の累乗でない場合
        UnsupportedOperationException - このバッファ(直接的または非直接的)と同じ種類のバッファのメモリー領域を管理する場合、ネイティブ・プラットフォームが指定された単位サイズの安定した整列オフセット値を保証しない場合。 例えば、ガベージ・コレクションが、非直接バッファによってカバーされるメモリー領域をあるロケーションから別のロケーションに移動させ、両方のロケーションが異なる整列特性を有する場合。
        導入されたバージョン:
        9
        関連項目:
        alignedSlice(int)
      • alignedSlice

        public final ByteBuffer alignedSlice​(int unitSize)
        このバッファの内容の共有されて整列されたサブ・シーケンスである内容を持つ新しいバイト・バッファを作成します。

        新しいバッファの内容は、指定された単位サイズの最も近い整列されたバイトのインデックスに切り上げられたこのバッファの現在の位置から開始し、指定された単位サイズの最も近い整列されたバイトのインデックスに切り捨てられたバッファの制限で終了します。 丸めの結果が範囲外の値になる場合、新しいバッファの容量と制限はゼロになります。 境界内に丸めがある場合、次の式は新しいバッファnbとユニット・サイズunitSizeに当てはまります:

        
         nb.alignmentOffset(0, unitSize) == 0
         nb.alignmentOffset(nb.limit(), unitSize) == 0
         

        このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの位置はゼロになり、その容量とその制限は、このバッファに残っているバイト数、または整列の対象となるバイト数になります。そのマークは未定義で、バイト順はBIG_ENDIANになります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

        APIの注:
        このメソッドは、ネイティブ・プラットフォームでサポートされている場合、インデックスからの単位サイズ・バイト(単位サイズの倍数)がアトミックにアクセスされる新しいバッファを作成するために利用できます。
        実装上の注意:
        この実装は、指定されたユニット・サイズが8より大きい場合、非ダイレクト・バッファ用のUnsupportedOperationExceptionをスローします。
        パラメータ:
        unitSize - 単位サイズはバイトで、2の累乗でなければなりません
        戻り値:
        新しいbyteバッファ
        例外:
        IllegalArgumentException - 単位サイズが2の力でない場合
        UnsupportedOperationException - このバッファ(直接的または非直接的)と同じ種類のバッファのメモリー領域を管理する場合、ネイティブ・プラットフォームが指定された単位サイズで安定した整列スライスを保証しない場合。 例えば、ガベージ・コレクションが、非直接バッファによってカバーされるメモリー領域をあるロケーションから別のロケーションに移動させ、両方のロケーションが異なる整列特性を有する場合。
        導入されたバージョン:
        9
        関連項目:
        alignmentOffset(int, int), slice()
      • getChar

        public abstract char getChar​()
        char値を読み取る相対getメソッドです。

        このバッファの現在位置から2 byteを読み込み、現在のbyte順序に従って、これらをchar値に変換します。位置の値は、そのたびに2ずつ増加します。

        戻り値:
        バッファの現在位置のchar値
        例外:
        BufferUnderflowException - このバッファ内に残っているbyte数が2 byteより少ない場合
      • putChar

        public abstract ByteBuffer putChar​(char value)
        char値を書き込む相対putメソッドです  (オプションの操作)

        このバッファの現在位置に、現在のbyte順序に従って、指定されたchar値を含む2 byteを書き込みます。位置の値は、そのたびに2ずつ増加します。

        パラメータ:
        value - 書き込まれるchar値
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファ内に残っているbyte数が2 byteより少ない場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • getChar

        public abstract char getChar​(int index)
        char値を読み取る絶対getメソッドです。

        指定されたインデックス位置にある2 byteを読み込み、現在のbyte順序に従って、これらをchar値に変換します。

        パラメータ:
        index - byteの読込み位置を示すインデックス
        戻り値:
        指定されたインデックス位置のchar値
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-1
      • putChar

        public abstract ByteBuffer putChar​(int index,
                                           char value)
        char値を書き込む絶対putメソッドです  (オプションの操作)

        このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたchar値を含む2 byteを書き込みます。

        パラメータ:
        index - byteの書込み先を示すインデックス
        value - 書き込まれるchar値
        戻り値:
        このバッファ
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-1
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • asCharBuffer

        public abstract CharBuffer asCharBuffer​()
        charバッファとしてこのbyteバッファのビューを作成します。

        新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を2で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

        戻り値:
        新しいcharバッファ
      • getShort

        public abstract short getShort​()
        short値を読み取る相対getメソッドです。

        このバッファの現在位置から2 byteを読み込み、現在のbyte順序に従って、これらをshort値に変換します。位置の値は、そのたびに2ずつ増加します。

        戻り値:
        バッファの現在位置のshort値
        例外:
        BufferUnderflowException - このバッファ内に残っているbyte数が2 byteより少ない場合
      • putShort

        public abstract ByteBuffer putShort​(short value)
        short値を書き込む相対putメソッドです  (オプションの操作)

        このバッファの現在位置に、現在のbyte順序に従って、指定されたshort値を含む2 byteを書き込みます。位置の値は、そのたびに2ずつ増加します。

        パラメータ:
        value - 書き込まれるshort値
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファ内に残っているbyte数が2 byteより少ない場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • getShort

        public abstract short getShort​(int index)
        short値を読み取る絶対getメソッドです。

        指定されたインデックス位置にある2 byteを読み込み、現在のbyte順序に従って、これらをshort値に変換します。

        パラメータ:
        index - byteの読込み位置を示すインデックス
        戻り値:
        指定されたインデックス位置のshort値
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-1
      • putShort

        public abstract ByteBuffer putShort​(int index,
                                            short value)
        short値を書き込む絶対putメソッドです  (オプションの操作)

        このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたshort値を含む2 byteを書き込みます。

        パラメータ:
        index - byteの書込み先を示すインデックス
        value - 書き込まれるshort値
        戻り値:
        このバッファ
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-1
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • asShortBuffer

        public abstract ShortBuffer asShortBuffer​()
        shortバッファとしてこのbyteバッファのビューを作成します。

        新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を2で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

        戻り値:
        新しいshortバッファ
      • getInt

        public abstract int getInt​()
        int値を読み取る相対getメソッドです。

        このバッファの現在位置から4 byteを読み込み、現在のbyte順序に従って、これらをint値に変換します。位置の値は、そのたびに4ずつ増加します。

        戻り値:
        バッファの現在位置のint値
        例外:
        BufferUnderflowException - このバッファ内に残っているbyte数が4 byteより少ない場合
      • putInt

        public abstract ByteBuffer putInt​(int value)
        int値を書き込む相対putメソッドです  (オプションの操作)

        このバッファの現在位置に、現在のbyte順序に従って、指定されたint値を含む4 byteを書き込みます。位置の値は、そのたびに4ずつ増加します。

        パラメータ:
        value - 書き込まれるint値
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファ内に残っているbyte数が4 byteより少ない場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • getInt

        public abstract int getInt​(int index)
        int値を読み取る絶対getメソッドです。

        指定されたインデックス位置にある4 byteを読み込み、現在のbyte順序に従って、これらをint値に変換します。

        パラメータ:
        index - byteの読込み位置を示すインデックス
        戻り値:
        指定されたインデックス位置のint値
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-3
      • putInt

        public abstract ByteBuffer putInt​(int index,
                                          int value)
        int値を書き込む絶対putメソッドです  (オプションの操作)

        このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたint値を含む4 byteを書き込みます。

        パラメータ:
        index - byteの書込み先を示すインデックス
        value - 書き込まれるint値
        戻り値:
        このバッファ
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-3
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • asIntBuffer

        public abstract IntBuffer asIntBuffer​()
        intバッファとしてこのbyteバッファのビューを作成します。

        新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を4で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

        戻り値:
        新しいintバッファ
      • getLong

        public abstract long getLong​()
        long値を読み取る相対getメソッドです。

        このバッファの現在位置から8 byteを読み込み、現在のbyte順序に従って、これらをlong値に変換します。位置の値は、そのたびに8ずつ増加します。

        戻り値:
        バッファの現在位置のlong値
        例外:
        BufferUnderflowException - このバッファ内に残っているbyte数が8 byteより少ない場合
      • putLong

        public abstract ByteBuffer putLong​(long value)
        long値を書き込む相対putメソッドです  (オプションの操作)

        このバッファの現在位置に、現在のbyte順序に従って、指定されたlong値を含む8 byteを書き込みます。位置の値は、そのたびに8ずつ増加します。

        パラメータ:
        value - 書き込まれるlong値
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファ内に残っているbyte数が8 byteより少ない場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • getLong

        public abstract long getLong​(int index)
        long値を読み取る絶対getメソッドです。

        指定されたインデックス位置にある8 byteを読み込み、現在のbyte順序に従って、これらをlong値に変換します。

        パラメータ:
        index - byteの読込み位置を示すインデックス
        戻り値:
        指定されたインデックス位置のlong値
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-7
      • putLong

        public abstract ByteBuffer putLong​(int index,
                                           long value)
        long値を書き込む絶対putメソッドです  (オプションの操作)

        このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたlong値を含む8 byteを書き込みます。

        パラメータ:
        index - byteの書込み先を示すインデックス
        value - 書き込まれるlong値
        戻り値:
        このバッファ
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-7
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • asLongBuffer

        public abstract LongBuffer asLongBuffer​()
        longバッファとしてこのbyteバッファのビューを作成します。

        新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を8で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

        戻り値:
        新しいlongバッファ
      • getFloat

        public abstract float getFloat​()
        float値を読み取る相対getメソッドです。

        このバッファの現在位置から4 byteを読み込み、現在のbyte順序に従って、これらをfloat値に変換します。位置の値は、そのたびに4ずつ増加します。

        戻り値:
        バッファの現在位置のfloat値
        例外:
        BufferUnderflowException - このバッファ内に残っているbyte数が4 byteより少ない場合
      • putFloat

        public abstract ByteBuffer putFloat​(float value)
        float値を書き込む相対putメソッドです  (オプションの操作)

        このバッファの現在位置に、現在のbyte順序に従って、指定されたfloat値を含む4 byteを書き込みます。位置の値は、そのたびに4ずつ増加します。

        パラメータ:
        value - 書き込まれるfloat値
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファ内に残っているbyte数が4 byteより少ない場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • getFloat

        public abstract float getFloat​(int index)
        float値を読み取る絶対getメソッドです。

        指定されたインデックス位置にある4 byteを読み込み、現在のbyte順序に従って、これらをfloat値に変換します。

        パラメータ:
        index - byteの読込み位置を示すインデックス
        戻り値:
        指定されたインデックス位置のfloat値
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-3
      • putFloat

        public abstract ByteBuffer putFloat​(int index,
                                            float value)
        float値を書き込む絶対putメソッドです  (オプションの操作)

        このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたfloat値を含む4 byteを書き込みます。

        パラメータ:
        index - byteの書込み先を示すインデックス
        value - 書き込まれるfloat値
        戻り値:
        このバッファ
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-3
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • asFloatBuffer

        public abstract FloatBuffer asFloatBuffer​()
        floatバッファとしてこのbyteバッファのビューを作成します。

        新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を4で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

        戻り値:
        新しいfloatバッファ
      • getDouble

        public abstract double getDouble​()
        double値を読み取る相対getメソッドです。

        このバッファの現在位置から8 byteを読み込み、現在のbyte順序に従って、これらをdouble値に変換します。位置の値は、そのたびに8ずつ増加します。

        戻り値:
        バッファの現在位置のdouble値
        例外:
        BufferUnderflowException - このバッファ内に残っているbyte数が8 byteより少ない場合
      • putDouble

        public abstract ByteBuffer putDouble​(double value)
        double値を書き込む相対putメソッドです  (オプションの操作)

        このバッファの現在位置に、現在のbyte順序に従って、指定されたdouble値を含む8 byteを書き込みます。位置の値は、そのたびに8ずつ増加します。

        パラメータ:
        value - 書き込まれるdouble値
        戻り値:
        このバッファ
        例外:
        BufferOverflowException - このバッファ内に残っているbyte数が8 byteより少ない場合
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • getDouble

        public abstract double getDouble​(int index)
        double値を読み取る絶対getメソッドです。

        指定されたインデックス位置にある8 byteを読み込み、現在のbyte順序に従って、これらをdouble値に変換します。

        パラメータ:
        index - byteの読込み位置を示すインデックス
        戻り値:
        指定されたインデックス位置のdouble値
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-7
      • putDouble

        public abstract ByteBuffer putDouble​(int index,
                                             double value)
        double値を書き込む絶対putメソッドです  (オプションの操作)

        このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたdouble値を含む8 byteを書き込みます。

        パラメータ:
        index - byteの書込み先を示すインデックス
        value - 書き込まれるdouble値
        戻り値:
        このバッファ
        例外:
        IndexOutOfBoundsException - indexが負の値である場合、またはバッファのリミット以上である場合、-7
        ReadOnlyBufferException - このバッファが読込み専用である場合
      • asDoubleBuffer

        public abstract DoubleBuffer asDoubleBuffer​()
        doubleバッファとしてこのbyteバッファのビューを作成します。

        新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。

        新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を8で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。

        戻り値:
        新しいdoubleバッファ