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

クラスByteBuffer

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

public abstract sealed class ByteBuffer extends Buffer implements Comparable<ByteBuffer> permits MappedByteBuffer (not exhaustive)
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値)の場合、次のメソッドが定義されます。

対応するメソッドは、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);

オプションの操作

オプションの操作として指定されたメソッドは、read-only ByteBufferで呼び出されるとReadOnlyBufferExceptionをスローします。 ByteBufferが「アクセス可能なバイト配列」 (ByteBufferが読取り専用かどうかに関係なく、)に支えられていない場合、メソッド「配列」およびarrayOffsetUnsupportedOperationExceptionをスローします。
導入されたバージョン:
1.4
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    alignedSlice(int unitSize)
    コンテンツが、このバッファのコンテンツの共有および整列されたサブシーケンスである新しいバイト・バッファを作成します。
    final int
    alignmentOffset(int index, int unitSize)
    指定されたインデックスのバイトを指すメモリー・アドレスを返します。指定された単位サイズを変更します。
    static ByteBuffer
    allocate(int capacity)
    新しいbyteバッファを割り当てます。
    static ByteBuffer
    allocateDirect(int capacity)
    新しいダイレクトbyteバッファを割り当てます。
    final byte[]
    このバッファを補助するbyte配列を返します  (オプションの操作)
    final int
    このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します  (オプションの操作)
    abstract CharBuffer
    charバッファとしてこのbyteバッファのビューを作成します。
    abstract DoubleBuffer
    doubleバッファとしてこのbyteバッファのビューを作成します。
    abstract FloatBuffer
    floatバッファとしてこのbyteバッファのビューを作成します。
    abstract IntBuffer
    intバッファとしてこのbyteバッファのビューを作成します。
    abstract LongBuffer
    longバッファとしてこのbyteバッファのビューを作成します。
    abstract ByteBuffer
    このバッファの内容を共有する新しい読込み専用byteバッファを作成します。
    abstract ShortBuffer
    shortバッファとしてこのbyteバッファのビューを作成します。
    このバッファをクリアします。
    abstract ByteBuffer
    このバッファを圧縮します  (オプションの操作)
    int
    このバッファを別のバッファと比較します。
    abstract ByteBuffer
    このバッファの内容を共有する新しいbyteバッファを作成します。
    boolean
    このバッファが別のオブジェクトと等価であるかどうかを判断します。
    このバッファをフリップ(反転)します。
    abstract byte
    get()
    相対getメソッドです。
    get(byte[] dst)
    相対一括getメソッドです。
    get(byte[] dst, int offset, int length)
    相対一括getメソッドです。
    abstract byte
    get(int index)
    絶対getメソッドです。
    get(int index, byte[] dst)
    絶対一括getメソッド。
    get(int index, byte[] dst, int offset, int length)
    絶対一括getメソッド。
    abstract char
    char値を読み取る相対getメソッドです。
    abstract char
    getChar(int index)
    char値を読み取る絶対getメソッドです。
    abstract double
    double値を読み取る相対getメソッドです。
    abstract double
    getDouble(int index)
    double値を読み取る絶対getメソッドです。
    abstract float
    float値を読み取る相対getメソッドです。
    abstract float
    getFloat(int index)
    float値を読み取る絶対getメソッドです。
    abstract int
    int値を読み取る相対getメソッドです。
    abstract int
    getInt(int index)
    int値を読み取る絶対getメソッドです。
    abstract long
    long値を読み取る相対getメソッドです。
    abstract long
    getLong(int index)
    long値を読み取る絶対getメソッドです。
    abstract short
    short値を読み取る相対getメソッドです。
    abstract short
    getShort(int index)
    short値を読み取る絶対getメソッドです。
    final boolean
    このバッファがアクセス可能なbyte配列に連動するかどうかを判断します。
    int
    このバッファの現在のハッシュ・コードを返します。
    abstract boolean
    このbyteバッファがダイレクト・バッファであるかどうかを判断します。
    limit(int newLimit)
    このバッファのリミットを設定します。
    このバッファの現在位置にマークを設定します。
    int
    このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。
    final ByteOrder
    このバッファのbyte順序を取得します。
    このバッファのbyte順序を変更します。
    position(int newPosition)
    このバッファの位置を設定します。
    abstract ByteBuffer
    put(byte b)
    相対putメソッドです  (オプションの操作)
    put(byte[] src)
    相対一括putメソッドです  (オプションの操作)
    put(byte[] src, int offset, int length)
    相対一括putメソッドです  (オプションの操作)
    abstract ByteBuffer
    put(int index, byte b)
    絶対putメソッドです  (オプションの操作)
    put(int index, byte[] src)
    (optional operation)の絶対一括putメソッド。
    put(int index, byte[] src, int offset, int length)
    (optional operation)の絶対一括putメソッド。
    put(int index, ByteBuffer src, int offset, int length)
    (optional operation)の絶対一括putメソッド。
    相対一括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メソッドです  (オプションの操作)
    バッファの位置を以前にマークした位置に戻します。
    このバッファをリワインド(巻き戻し)します。
    abstract ByteBuffer
    このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。
    abstract ByteBuffer
    slice(int index, int length)
    このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。
    このバッファの状態を要約した文字列を返します。
    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バッファ
      関連項目:
    • 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
    • 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 - 書き込まれるバイト
      戻り値:
      このバッファ
      例外:
      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を転送します。 バッファに残っているバイト数が、リクエストを満たすために必要なバイト数より少ない場合、つまり、length > remaining()の場合、バイトは転送されず、BufferUnderflowExceptionがスローされます。

      それ以外の場合、このメソッドは、このバッファのlengthバイトを、このバッファの現在の位置から、配列内の指定されたオフセットに、指定された配列にコピーします。 このバッファの位置は、lengthによって増分されます。

      つまり、src.get(dst, off, len)形式のこのメソッドの呼出しは、ループとまったく同じ効果があります

          for (int i = off; i < off + len; i++)
              dst[i] = src.get();
      
      ただし、このバッファ内に十分な数のbyte数があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。

      パラメータ:
      dst - byteの書込み先となる配列
      offset - 書き込まれる最初のバイトの配列内のオフセット。負以外で、dst.lengthを超えることはできません
      length - 指定された配列に書き込まれる最大バイト数。負以外で、dst.length - offset以下である必要があります
      戻り値:
      このバッファ
      例外:
      BufferUnderflowException - このバッファの残りがlengthバイト未満の場合
      IndexOutOfBoundsException - offsetパラメータとlengthパラメータの前提条件が満たされていない場合
    • get

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

      このメソッドは、このバッファから指定された配列へbyteを転送します。 src.get(a)形式のこのメソッドの起動は、起動とまったく同じように動作

          src.get(a, 0, a.length)
      

      パラメータ:
      dst - コピー先配列
      戻り値:
      このバッファ
      例外:
      BufferUnderflowException - このバッファの残りが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をこのバッファへ転送します。 ソース・バッファのバイト数がこのバッファのバイト数より多い場合、つまり、src.remaining() > remaining()の場合、バイトは転送されず、BufferOverflowExceptionがスローされます。

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

      つまり、dst.put(src)形式のこのメソッドの呼出しは、ループとまったく同じ効果があります

          while (src.hasRemaining())
              dst.put(src.get());
      
      ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。 このバッファとソース・バッファが同じバッキング配列またはメモリーを共有している場合、結果は、このバッファに書き込まれる前にソース要素が最初に中間のロケーションにコピーされたかのようになります。

      パラメータ:
      src - byteの読込み先となるソース・バッファ(このバッファ以外)
      戻り値:
      このバッファ
      例外:
      BufferOverflowException - このバッファに、ソース・バッファ内に残っているbyteを格納できるだけの容量がない場合
      IllegalArgumentException - ソース・バッファとしてこのバッファを指定した場合
      ReadOnlyBufferException - このバッファが読込み専用である場合
    • put

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

      このメソッドは、ソース・バッファ内の指定されたoffsetおよびこのバッファ内の指定されたindexからlengthバイトをこのバッファに転送します。 両方のバッファの位置は変更されません。

      つまり、dst.put(index, src, offset, length)形式のこのメソッドの呼出しは、ループとまったく同じ効果があります

          for (int i = offset, j = index; i < offset + length; i++, j++)
              dst.put(j, src.get(i));
      
      最初に、指定されたパラメータの一貫性をチェックし、より効率的になる可能性があることを除きます。 このバッファとソース・バッファが同じバッキング配列またはメモリーを共有している場合、結果は、このバッファに書き込まれる前にソース要素が最初に中間のロケーションにコピーされたかのようになります。

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

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

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

      それ以外の場合、このメソッドは、指定された配列からこのバッファにlengthバイトをコピーします。このバッファは、配列内の指定されたオフセットから、このバッファの現在の位置で始まります。 このバッファの位置は、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 - 新しい位置の値は、現在のリミット以下の負でない値でなければならない
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • limit

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

      public ByteBuffer mark()
      このバッファの現在位置にマークを設定します。
      オーバーライド:
      クラスBuffermark
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • reset

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

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

      オーバーライド:
      クラスBufferreset
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • clear

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

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

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

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

      オーバーライド:
      クラスBufferclear
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • 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
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • rewind

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

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

          out.write(buf);    // Write remaining data
          buf.rewind();      // Rewind buffer
          buf.get(array);    // Copy data into array
      

      オーバーライド:
      クラスBufferrewind
      戻り値:
      このバッファ
      導入されたバージョン:
      9
    • compact

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

      バッファの現在位置からリミットまでの間にbyteが存在する場合、これらをバッファの先頭にコピーします。 つまり、索引p = position()のバイトは索引0にコピーされ、索引p + 1のバイトは索引1にコピーされ、索引limit()のバイトまでコピーされます-1が索引n = limit()にコピーされます-1-p. 最終的にバッファの位置はn+1に設定され、リミットは容量の値と等しくなります。 マークは破棄されます。

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

      このメソッドは、書込みが終了しなかった場合にバッファからのデータの書込みを実行する前に呼び出します。 たとえば、次のループでは、バッファbufを介してチャネル間でバイトをコピーします:

          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()
      このバッファの現在のハッシュ・コードを返します。

      バイト・バッファのハッシュ・コードは、残りの要素にのみ依存します。つまり、position()の要素からlimit()の要素までの要素、およびそれに含まれる要素によって決まります-1

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

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

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

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

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

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

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

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

      オーバーライド:
      equals、クラスObject
      パラメータ:
      ob - このバッファと比較するオブジェクト
      戻り値:
      このバッファが指定されたオブジェクトと等しい場合のみ、true
      関連項目:
    • 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

      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
      関連項目:
    • 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バッファ