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

クラスByteBuffer

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

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

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

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

  • このバッファから配列にバイトの連続したシーケンスを転送する絶対および相対bulk getメソッド。

  • バイト配列またはほかのバイト・バッファ内の連続バイト・シーケンスを、このバッファに転送する絶対および相対bulk 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
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    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メソッドです。
    ByteBuffer get​(int index, byte[] dst)
    絶対一括getメソッド。
    ByteBuffer get​(int index, byte[] dst, int offset, int length)
    絶対一括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()
    このバッファの現在位置にマークを設定します。
    int mismatch​(ByteBuffer that)
    このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。
    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​(int index, byte[] src)
    (optional operation)の絶対一括putメソッド。
    ByteBuffer put​(int index, byte[] src, int offset, int length)
    (optional operation)の絶対一括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バッファを作成します。
    abstract ByteBuffer slice​(int index, int length)
    このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。
    String toString()
    このバッファの状態を要約した文字列を返します。
    static ByteBuffer wrap​(byte[] array)
    byte配列をバッファにラップします。
    static ByteBuffer wrap​(byte[] array, int offset, int length)
    byte配列をバッファにラップします。

    クラス java.nio.Bufferで宣言されたメソッド

    capacity, hasRemaining, isReadOnly, limit, position, remaining

    クラス java.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • メソッドの詳細

    • 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)
    • slice

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

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

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

      定義:
      クラスBufferslice
      パラメータ:
      index - 新しいバッファの内容が開始される、このバッファ内の位置。limit()以外の値である必要があります。
      length - 新規バッファに含まれる要素の数。負以外でlimit() - indexより大きい値である必要があります。
      戻り値:
      新しいバッファ
      例外:
      IndexOutOfBoundsException - indexが、limit()以上の場合、lengthがマイナスまたはlength > limit() - index
      導入されたバージョン:
      13
    • 複製

      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 - 書き込まれるバイト
      戻り値:
      このバッファ
      例外:
      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よりも少ない場合
    • get

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

      このメソッドは、このバッファ内の指定されたインデックスから、配列内の指定されたオフセットから開始して、lengthバイトをこのバッファ内の指定された配列に転送します。 このバッファの位置は変わりません。

      フォームsrc.get(index, dst, offset, length)のこのメソッドを起動しても、次のループとまったく同じ効果があります。ただし、最初に提供されたパラメータの一貫性がチェックされ、それがさらに効率的である可能性があります:

      
           for (int i = offset, j = index; i < offset + length; i++, j++)
               dst[i] = src.get(j);
       

      パラメータ:
      index - 最初のバイトを読み込むバッファ内のインデックス。負でない値かつlimit()より小さい値である必要があります。
      dst - コピー先配列
      offset - 書き込まれる最初のバイトの配列内のオフセット。dst.lengthより小さくしないでください。
      length - 指定された配列に書き込まれるバイト数。負でない値でなければならず、limit() - indexおよびdst.length - offsetの値より小さくてはいけません。
      戻り値:
      このバッファ
      例外:
      IndexOutOfBoundsException - indexoffsetおよびlengthパラメータの事前条件が満たされていない場合、それらを保持しません
      導入されたバージョン:
      13
    • get

      public ByteBuffer get​(int index, byte[] dst)
      絶対一括getメソッド。

      このメソッドは、このバッファから指定された配列へbyteを転送します。 このバッファの位置は変わりません。 フォームsrc.get(index, dst)のこのメソッドの起動は、起動とまったく同じ方法で動作します:

           src.get(index, dst, 0, dst.length) 

      パラメータ:
      index - 最初のバイトを読み込むバッファ内のインデックス。負でない値かつlimit()より小さい値である必要があります。
      dst - コピー先配列
      戻り値:
      このバッファ
      例外:
      IndexOutOfBoundsException - indexが負であるか、limit()より小さくないか、またはlimit() - index < dst.lengthの場合
      導入されたバージョン:
      13
    • 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(src[i]);
       
      ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。

      パラメータ:
      src - byteの読込み先となる配列
      offset - 最初に読み込まれるバイトの配列内のオフセット。src.lengthより小さくないでください。
      length - 指定された配列から読み取られるバイト数。負以外でsrc.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 - このバッファが読込み専用である場合
    • put

      public ByteBuffer put​(int index, byte[] src, int offset, int length)
      (optional operation)の絶対一括putメソッド。

      このメソッドは、指定された配列からlengthバイトを転送します。配列内の指定されたオフセットから開始して、このバッファ内の指定されたインデックスから転送します。 このバッファの位置は変わりません。

      フォームdst.put(index, src, offset, length)のこのメソッドを起動しても、次のループとまったく同じ効果があります。ただし、最初に提供されたパラメータの一貫性がチェックされ、それがさらに効率的である可能性があります:

      
           for (int i = offset, j = index; i < offset + length; i++, j++)
               dst.put(j, src[i]);
       

      パラメータ:
      index - 最初のバイトが書き込まれるこのバッファ内のインデックス。limit()以上でない必要があります。
      src - byteの読込み先となる配列
      offset - 最初に読み込まれるバイトの配列内のオフセット。src.lengthより短く、小さくする必要があります。
      length - 指定された配列から読み取られるバイト数。負でない値で、limit() - indexおよびsrc.length - offsetの値より小さくない値である必要があります。
      戻り値:
      このバッファ
      例外:
      IndexOutOfBoundsException - indexoffsetおよびlengthパラメータの事前条件が満たされていない場合、それらを保持しません
      ReadOnlyBufferException - このバッファが読込み専用である場合
      導入されたバージョン:
      13
    • put

      public ByteBuffer put​(int index, byte[] src)
      (optional operation)の絶対一括putメソッド。

      このメソッドは、指定されたソース配列からこのバッファにバイトをコピーします。 このバッファの位置は変わりません。 フォームdst.put(index, src)のこのメソッドの起動は、起動とまったく同じ方法で動作します:

           dst.put(index, src, 0, src.length); 

      パラメータ:
      index - 最初のバイトが書き込まれるこのバッファ内のインデックス。limit()以上でない必要があります。
      src - byteの読込み先となる配列
      戻り値:
      このバッファ
      例外:
      IndexOutOfBoundsException - indexが負であるか、limit()より小さくないか、またはlimit() - index < src.lengthの場合
      ReadOnlyBufferException - このバッファが読込み専用である場合
      導入されたバージョン:
      13
    • 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 - 比較対象のオブジェクト。
      戻り値:
      このバッファが指定されたバッファより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
    • mismatch

      public int mismatch​(ByteBuffer that)
      このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。 インデックスは各バッファのpositionに相対的であり、各バッファ(inclusive)の範囲が各バッファremainingの範囲内で小さくなる。

      2つのバッファが共通プレフィクスを共有している場合、戻される索引は共通プレフィクスの長さとなり、各バッファ内のその索引の2つのバッファ間に不一致があることに従います。 一方のバッファがもう一方のバッファのプレフィクスである場合、戻された索引は各バッファ内の残りの要素の小さい方になり、残りの要素の数が多いバッファに対してのみ索引が有効になります。 それ以外の場合は、不一致はありません。

      パラメータ:
      that - このバッファと不一致をテストするためのバイト・バッファ
      戻り値:
      このバッファと指定されたバッファの最初の不一致の相対索引です。一致しない場合は -1です。
      導入されたバージョン:
      11
    • 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 (inclusive)のunitSize (exclusive)までの範囲で負ではなく、インデックスのバイトのアドレスが単位サイズに合わせられていることを示すゼロ(ゼロ)の値、およびアドレスが単位サイズに対して誤って整列されていることを示す正の値です。 索引でのバイトのアドレスが位置揃えされていない場合、戻り値は、整列されたアドレスでバイトを検出するように索引を調整する必要がある量を表します。 具体的には、ファンクションがindexよりも大きい場合は戻り値で減分されるか、ユニット・サイズから戻り値を引いた値で増分されます。 したがって、

       int value = alignmentOffset(index, unitSize)
      次にId
       alignmentOffset(index - value, unitSize) == 0, value ≤ index
      and
       alignmentOffset(index + (unitSize - value), 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バッファ