- すべての実装されたインタフェース:
Comparable<ByteBuffer>
- 直系の既知のサブクラス:
MappedByteBuffer
このクラスは、byteバッファに対する操作を次の6つのカテゴリに分類します。
このバッファから配列にバイトの連続したシーケンスを転送する絶対および相対
bulk get
メソッド。連続するバイト・シーケンスをバイト配列{#if[char]?, a string,}または他のバイト・バッファからこのバッファに転送する絶対および相対
bulk put
メソッド。{#if [!byte]?および}その他のプリミティブ型の値の読み込みと書込みを行い、これらの値とbyteシーケンスを特定のbyte順序で相互変換する、絶対および相対
get
/put
メソッド。その他のプリミティブ型の値を格納するバッファとしてbyteバッファを表示できる、「ビュー・バッファ」の作成メソッド
compacting
バイト・バッファのメソッド。
バイト・バッファは、バッファ・コンテンツ用の領域を割り当てるallocation
によって、または既存のバイト配列 {#if[char]?or string} をバッファに割り当てるwrapping
によって作成できます。
ダイレクト・バッファと非ダイレクト・バッファ
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値)の場合、次のメソッドが定義されます。
floatgetFloat()
floatgetFloat(int index)
voidputFloat(float f)
voidputFloat(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
-
メソッドのサマリー
修飾子と型メソッド説明final ByteBuffer
alignedSlice
(int unitSize) このバッファの内容の共有されて整列されたサブシーケンスである内容を持つ新しいバイト・バッファを作成します。final int
alignmentOffset
(int index, int unitSize) 指定されたインデックスのバイトを指すメモリー・アドレスを返します。指定された単位サイズを変更します。static ByteBuffer
allocate
(int capacity) 新しいbyteバッファを割り当てます。static ByteBuffer
allocateDirect
(int capacity) 新しいダイレクトbyteバッファを割り当てます。final byte[]
array()
このバッファを補助する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バッファのビューを作成します。clear()
このバッファをクリアします。abstract ByteBuffer
compact()
このバッファを圧縮します (オプションの操作)。int
compareTo
(ByteBuffer that) このバッファを別のバッファと比較します。abstract ByteBuffer
このバッファの内容を共有する新しいbyteバッファを作成します。boolean
このバッファが別のオブジェクトと等価であるかどうかを判断します。flip()
このバッファをフリップ(反転)します。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
getChar()
char値を読み取る相対getメソッドです。abstract char
getChar
(int index) char値を読み取る絶対getメソッドです。abstract double
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メソッドです。final boolean
hasArray()
このバッファがアクセス可能なbyte配列に連動するかどうかを判断します。int
hashCode()
このバッファの現在のハッシュ・コードを返します。abstract boolean
isDirect()
このbyteバッファがダイレクト・バッファであるかどうかを判断します。limit
(int newLimit) このバッファのリミットを設定します。mark()
このバッファの現在位置にマークを設定します。int
mismatch
(ByteBuffer that) このバッファと指定されたバッファの最初の不一致の相対索引を検索して戻します。final ByteOrder
order()
このバッファのbyte順序を取得します。final ByteBuffer
このバッファのbyte順序を変更します。position
(int newPosition) このバッファの位置を設定します。abstract ByteBuffer
put
(byte b) 相対putメソッドです (オプションの操作)。final ByteBuffer
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
(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メソッドです (オプションの操作)。reset()
バッファの位置を以前にマークした位置に戻します。rewind()
このバッファをリワインド(巻き戻し)します。abstract ByteBuffer
slice()
このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。abstract ByteBuffer
slice
(int index, int length) このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。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
-
メソッドの詳細
-
allocateDirect
public static ByteBuffer allocateDirect(int capacity) 新しいダイレクトbyteバッファを割り当てます。新しいバッファの位置はゼロになり、限界はその容量になり、マークは未定義になり、各要素はゼロに初期化され、バイト順は
BIG_ENDIAN
になります。backing array
があるかどうかは不明です。- パラメータ:
capacity
- 新しいバッファの容量(byte)- 戻り値:
- 新しいbyteバッファ
- throws:
IllegalArgumentException
-capacity
が負の整数である場合
-
allocate
public static ByteBuffer allocate(int capacity) 新しいbyteバッファを割り当てます。新しいバッファの位置はゼロになり、限界はその容量になり、マークは未定義になり、各要素はゼロに初期化され、バイト順は
BIG_ENDIAN
になります。backing array
があり、そのarray offset
はゼロになります。- パラメータ:
capacity
- 新しいバッファの容量(byte)- 戻り値:
- 新しいbyteバッファ
- throws:
IllegalArgumentException
-capacity
が負の整数である場合
-
wrap
public static ByteBuffer wrap(byte[] array, int offset, int length) byte配列をバッファにラップします。新しいバッファは指定されたbyte配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量は
array.length
になり、その位置はoffset
になり、その制限はoffset + length
になり、そのマークは未定義になり、バイト順はBIG_ENDIAN
になります。 そのbacking array
は指定された配列になり、そのarray offset
はゼロになります。- パラメータ:
array
- 新しいバッファを補助する配列offset
-使用するサブ配列のオフセット。array.length
以下の負でない値でなければならない。 新しいバッファの位置は、この値に設定される。length
- 使用するサブ配列の長さ。array.length - offset
以下の負でない値でなければならない。 新しいバッファのリミットは、offset+length
に設定される。- 戻り値:
- 新しいbyteバッファ
- throws:
IndexOutOfBoundsException
-offset
パラメータとlength
パラメータの前提条件が満たされていない場合
-
wrap
public static ByteBuffer wrap(byte[] array) byte配列をバッファにラップします。新しいバッファは指定されたbyte配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。 新しいバッファの容量とリミットは
array.length
になり、その位置はゼロになり、マークは未定義になり、バイト順はBIG_ENDIAN
になります。 そのbacking array
は指定された配列になり、そのarray offset
はゼロになります。- パラメータ:
array
- このバッファを補助する配列- 戻り値:
- 新しいbyteバッファ
-
slice
public abstract ByteBuffer slice()このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロになり、その容量とその制限はこのバッファに残っているバイト数になり、そのマークは未定義になり、バイト順は
BIG_ENDIAN
になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。 -
slice
public abstract ByteBuffer slice(int index, int length) このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。新しいバッファの内容は、このバッファ内の
index
の位置から始まり、length
要素が含まれます。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。新しいバッファ位置はゼロ、容量とリミットは
length
、マークは未定義、バイト順序はBIG_ENDIAN
になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。- 定義:
- クラス
Buffer
のslice
- パラメータ:
index
- 新しいバッファの内容が開始される、このバッファ内の位置。limit()
以外の値である必要があります。length
- 新規バッファに含まれる要素の数。負以外でlimit() - index
より大きい値である必要があります。- 戻り値:
- 新しいバッファ
- throws:
IndexOutOfBoundsException
-index
が、limit()
以上の場合、length
がマイナスまたはlength > limit() - index
- 導入されたバージョン:
- 13
-
duplicate
public abstract ByteBuffer duplicate()このバッファの内容を共有する新しいbyteバッファを作成します。新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、限界、位置、およびマークの値は、このバッファのものと同じになり、バイト・オーダーは
BIG_ENDIAN
になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。 -
asReadOnlyBuffer
public abstract ByteBuffer asReadOnlyBuffer()このバッファの内容を共有する新しい読込み専用byteバッファを作成します。新しいバッファの内容は、このバッファの内容と同じになります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。しかし、新しいバッファ自体は読取り専用であり、その共有内容を変更することはできません。 2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、限界、位置、およびマークの値は、このバッファのものと同じになり、バイト・オーダーは
BIG_ENDIAN
になります。このバッファ自身が読込み専用の場合は、このメソッドは
duplicate
と同じように動作します。- 戻り値:
- 新しい読込み専用byteバッファ
-
get
public abstract byte get()相対getメソッドです。 このバッファの現在位置からbyteを読み込み、現在位置の値を増加します。- 戻り値:
- バッファの現在位置のbyte
- throws:
BufferUnderflowException
- バッファの現在位置がリミット以上である場合
-
put
public abstract ByteBuffer put(byte b) 相対putメソッドです (オプションの操作)。バッファの現在位置に指定されたbyteを書き込み、現在位置の値を増加します。
- パラメータ:
b
- 書き込まれるバイト- 戻り値:
- このバッファ
- throws:
BufferOverflowException
- このバッファの現在位置がリミット以上である場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
get
public abstract byte get(int index) 絶対getメソッドです。 指定されたインデックス位置のbyteを読み込みます。- パラメータ:
index
- byteの読込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のbyte
- throws:
IndexOutOfBoundsException
-index
が負の数である場合、またはバッファのリミット以上である場合
-
put
public abstract ByteBuffer put(int index, byte b) 絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に指定されたbyteを書き込みます。
- パラメータ:
index
- byteの書込み先を示すインデックスb
- 書き込まれるbyte値- 戻り値:
- このバッファ
- throws:
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)
の形式で呼び出すと、次のループとまったく同じ結果になります。
ただし、このバッファ内に十分な数のbyte数があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。for (int i = off; i < off + len; i++) dst[i] = src.get();
- パラメータ:
dst
- byteの書込み先となる配列offset
- 最初のbyteの書込み先となる配列内のオフセット。dst.length
以下の負でない値でなければならないlength
- 指定された配列に書き込まれる最大byte数。dst.length - offset
以下の負でない値でなければならない- 戻り値:
- このバッファ
- throws:
BufferUnderflowException
- このバッファ内に残っているbyte数がlength
よりも少ない場合IndexOutOfBoundsException
-offset
パラメータとlength
パラメータの前提条件が満たされていない場合
-
get
public ByteBuffer get(byte[] dst) 相対一括getメソッドです。このメソッドは、このバッファから指定された配列へbyteを転送します。 このメソッドを
src.get(a)
の形式で呼び出すと、次の呼び出しと同じ結果になります。src.get(a, 0, a.length)
- パラメータ:
dst
- コピー先配列- 戻り値:
- このバッファ
- throws:
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
の値より小さくてはいけません。- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
、offset
および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
- コピー先配列- 戻り値:
- このバッファ
- throws:
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の読込み先となるソース・バッファ(このバッファ以外)- 戻り値:
- このバッファ
- throws:
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
のいずれか小さい方より小さく、負でない値にする必要があります- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
、offset
およびlength
パラメータの事前条件が満たされていない場合、それらを保持しませんReadOnlyBufferException
- このバッファが読込み専用である場合- 導入されたバージョン:
- 16
-
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
より大きい値である必要があります。- 戻り値:
- このバッファ
- throws:
BufferOverflowException
- このバッファ内に残っている容量が不足している場合IndexOutOfBoundsException
-offset
パラメータとlength
パラメータの前提条件が満たされていない場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
put
public final ByteBuffer put(byte[] src) 相対一括putメソッドです (オプションの操作)。このメソッドは、ソースとなる指定されたbyte配列の内容全体をこのバッファへ転送します。 このメソッドを
dst.put(a)
の形式で呼び出すと、次の呼び出しと同じ結果になります。dst.put(a, 0, a.length)
- パラメータ:
src
- 転送元配列- 戻り値:
- このバッファ
- throws:
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
の値より小さくない値である必要があります。- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
、offset
および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の読込み先となる配列- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
が負であるか、limit()
より小さくないか、またはlimit() - index < src.length
の場合ReadOnlyBufferException
- このバッファが読込み専用である場合- 導入されたバージョン:
- 13
-
hasArray
public final boolean hasArray()このバッファがアクセス可能なbyte配列に連動するかどうかを判断します。このメソッドの戻り値が
true
であれば、array
およびarrayOffset
メソッドを安全に呼び出すことができます。 -
array
public final byte[] array()このバッファを補助するbyte配列を返します (オプションの操作)。このバッファの内容に変更を加えると、返される配列の内容も変更されます。その逆も同様です。
このメソッドを呼び出す前に
hasArray
メソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。- 定義:
array
、クラスBuffer
- 戻り値:
- このバッファを補助する配列
- throws:
ReadOnlyBufferException
- このバッファが配列に連動しており、しかも読込み専用である場合UnsupportedOperationException
- このバッファがアクセス可能な配列を利用しない場合
-
arrayOffset
public final int arrayOffset()このバッファの補助配列内にある、このバッファの最初の要素のオフセットを返します (オプションの操作)。このバッファが配列に連動していれば、その位置pが配列のインデックスp +
arrayOffset()
と一致します。このメソッドを呼び出す前に
hasArray
メソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。- 定義:
arrayOffset
、クラスBuffer
- 戻り値:
- このバッファの配列内にある、このバッファの最初の要素のオフセット
- throws:
ReadOnlyBufferException
- このバッファが配列に連動しており、しかも読込み専用である場合UnsupportedOperationException
- このバッファがアクセス可能な配列を利用しない場合
-
position
public ByteBuffer position(int newPosition) このバッファの位置を設定します。 新しい位置の値よりもマークの値のほうが大きい場合、マークの定義は破棄されます。 -
limit
public ByteBuffer limit(int newLimit) このバッファのリミットを設定します。 位置の値が新しいリミットより大きい場合、リミットと同じ値に変更されます。 マークの値が新しいリミットより大きい場合、マークの定義は破棄されます。 -
mark
public ByteBuffer mark()このバッファの現在位置にマークを設定します。 -
reset
public ByteBuffer reset()バッファの位置を以前にマークした位置に戻します。このメソッドを呼び出しても、マークの値は変更されません。マークが破棄されることもありません。
-
clear
public ByteBuffer clear()このバッファをクリアします。 バッファの位置はゼロ、リミットは容量の値に設定されます。マークは破棄されます。一連のチャネル読込み操作または「put」操作を使用してこのバッファにデータを格納する前に、このメソッドを呼び出します。 たとえば、
buf.clear(); // Prepare buffer for reading in.read(buf); // Read data
このメソッドはバッファ内のデータを実際に消去するわけではありません。しかし、そうした状況で使用されるため、クリアと命名されています。
-
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
メソッドと組み合わせて使用することがあります。 -
rewind
public ByteBuffer rewind()このバッファをリワインド(巻き戻し)します。 位置はゼロに設定され、マークは破棄されます。このメソッドは、リミットを正しく設定したあと、一連のチャネル書込み操作(get)の前に呼び出します。 たとえば、
out.write(buf); // Write remaining data buf.rewind(); // Rewind buffer buf.get(array); // Copy data into array
-
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 }
- 戻り値:
- このバッファ
- throws:
ReadOnlyBufferException
- このバッファが読込み専用である場合
-
isDirect
public abstract boolean isDirect()このbyteバッファがダイレクト・バッファであるかどうかを判断します。 -
toString
public String toString()このバッファの状態を要約した文字列を返します。 -
hashCode
public int hashCode()このバッファの現在のハッシュ・コードを返します。byteバッファのハッシュ・コードは、バッファ内に残っている要素、すなわち
position()
からlimit()
-1
までの要素のみに依存します。バッファのハッシュ・コードは内容依存型です。今後バッファの内容が変更されないことが明らかでないかぎり、バッファをハッシュ・マップその他のデータ構造のキーとして使用することは避けてください。
-
equals
public boolean equals(Object ob) このバッファが別のオブジェクトと等価であるかどうかを判断します。2つのbyteバッファは、次の場合にかぎり等価です。
要素の型が同じである
バッファ内に残っている要素数が同じである
バッファ内に残っている要素のシーケンス(開始位置とは無関係)が各点で等しい(pointwise equal)
byteバッファが、その他の型のオブジェクトと等価になることはありません。
-
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
よりも大きい場合は戻り値で減分されるか、ユニット・サイズから戻り値を引いた値で増分されます。 したがって、
次にIdint value = alignmentOffset(index, unitSize)
andalignmentOffset(index - value, unitSize) == 0, value ≤ index
保留する必要があります。alignmentOffset(index + (unitSize - value), unitSize) == 0
- APIのノート:
- このメソッドは、ネイティブ・プラットフォームでサポートされている場合、インデックスからの単位サイズ・バイトに原子的にアクセスできるかどうかを判断するために利用できます。
- 実装上のノート:
- この実装は、指定されたユニット・サイズが
8
より大きい場合、非ダイレクト・バッファ用のUnsupportedOperationException
をスローします。 - パラメータ:
index
- 整列オフセットを問合せする索引は、ネガティブでなければならず、上限のチェックも行われませんunitSize
- 単位サイズはバイトで、2
の累乗でなければなりません- 戻り値:
- 索引付けされたバイト・メモリー・アドレス・モジュロ単位サイズ
- throws:
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バッファ
- throws:
IllegalArgumentException
- 単位サイズが2
の力でない場合UnsupportedOperationException
- このバッファ(直接的または非直接的)と同じ種類のバッファのメモリー領域を管理する場合、ネイティブ・プラットフォームが指定された単位サイズで安定した整列スライスを保証しない場合。 例えば、ガベージ・コレクションが、非直接バッファによってカバーされるメモリー領域をあるロケーションから別のロケーションに移動させ、両方のロケーションが異なる整列特性を有する場合。- 導入されたバージョン:
- 9
- 関連項目:
-
getChar
public abstract char getChar()char値を読み取る相対getメソッドです。このバッファの現在位置から2 byteを読み込み、現在のbyte順序に従って、これらをchar値に変換します。位置の値は、そのたびに2ずつ増加します。
- 戻り値:
- バッファの現在位置のchar値
- throws:
BufferUnderflowException
- このバッファ内に残っているbyte数が2 byteより少ない場合
-
putChar
public abstract ByteBuffer putChar(char value) char値を書き込む相対putメソッドです (オプションの操作)。このバッファの現在位置に、現在のbyte順序に従って、指定されたchar値を含む2 byteを書き込みます。位置の値は、そのたびに2ずつ増加します。
- パラメータ:
value
- 書き込まれるchar値- 戻り値:
- このバッファ
- throws:
BufferOverflowException
- このバッファ内に残っているbyte数が2 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
getChar
public abstract char getChar(int index) char値を読み取る絶対getメソッドです。指定されたインデックス位置にある2 byteを読み込み、現在のbyte順序に従って、これらをchar値に変換します。
- パラメータ:
index
- byteの読込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のchar値
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-1
-
putChar
public abstract ByteBuffer putChar(int index, char value) char値を書き込む絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたchar値を含む2 byteを書き込みます。
- パラメータ:
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるchar値- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-1ReadOnlyBufferException
- このバッファが読込み専用である場合
-
asCharBuffer
public abstract CharBuffer asCharBuffer()charバッファとしてこのbyteバッファのビューを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を2で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
- 戻り値:
- 新しいcharバッファ
-
getShort
public abstract short getShort()short値を読み取る相対getメソッドです。このバッファの現在位置から2 byteを読み込み、現在のbyte順序に従って、これらをshort値に変換します。位置の値は、そのたびに2ずつ増加します。
- 戻り値:
- バッファの現在位置のshort値
- throws:
BufferUnderflowException
- このバッファ内に残っているbyte数が2 byteより少ない場合
-
putShort
public abstract ByteBuffer putShort(short value) short値を書き込む相対putメソッドです (オプションの操作)。このバッファの現在位置に、現在のbyte順序に従って、指定されたshort値を含む2 byteを書き込みます。位置の値は、そのたびに2ずつ増加します。
- パラメータ:
value
- 書き込まれるshort値- 戻り値:
- このバッファ
- throws:
BufferOverflowException
- このバッファ内に残っているbyte数が2 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
getShort
public abstract short getShort(int index) short値を読み取る絶対getメソッドです。指定されたインデックス位置にある2 byteを読み込み、現在のbyte順序に従って、これらをshort値に変換します。
- パラメータ:
index
- byteの読込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のshort値
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-1
-
putShort
public abstract ByteBuffer putShort(int index, short value) short値を書き込む絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたshort値を含む2 byteを書き込みます。
- パラメータ:
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるshort値- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-1ReadOnlyBufferException
- このバッファが読込み専用である場合
-
asShortBuffer
public abstract ShortBuffer asShortBuffer()shortバッファとしてこのbyteバッファのビューを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を2で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
- 戻り値:
- 新しいshortバッファ
-
getInt
public abstract int getInt()int値を読み取る相対getメソッドです。このバッファの現在位置から4 byteを読み込み、現在のbyte順序に従って、これらをint値に変換します。位置の値は、そのたびに4ずつ増加します。
- 戻り値:
- バッファの現在位置のint値
- throws:
BufferUnderflowException
- このバッファ内に残っているbyte数が4 byteより少ない場合
-
putInt
public abstract ByteBuffer putInt(int value) int値を書き込む相対putメソッドです (オプションの操作)。このバッファの現在位置に、現在のbyte順序に従って、指定されたint値を含む4 byteを書き込みます。位置の値は、そのたびに4ずつ増加します。
- パラメータ:
value
- 書き込まれるint値- 戻り値:
- このバッファ
- throws:
BufferOverflowException
- このバッファ内に残っているbyte数が4 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
getInt
public abstract int getInt(int index) int値を読み取る絶対getメソッドです。指定されたインデックス位置にある4 byteを読み込み、現在のbyte順序に従って、これらをint値に変換します。
- パラメータ:
index
- byteの読込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のint値
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-3
-
putInt
public abstract ByteBuffer putInt(int index, int value) int値を書き込む絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたint値を含む4 byteを書き込みます。
- パラメータ:
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるint値- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-3ReadOnlyBufferException
- このバッファが読込み専用である場合
-
asIntBuffer
public abstract IntBuffer asIntBuffer()intバッファとしてこのbyteバッファのビューを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を4で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
- 戻り値:
- 新しいintバッファ
-
getLong
public abstract long getLong()long値を読み取る相対getメソッドです。このバッファの現在位置から8 byteを読み込み、現在のbyte順序に従って、これらをlong値に変換します。位置の値は、そのたびに8ずつ増加します。
- 戻り値:
- バッファの現在位置のlong値
- throws:
BufferUnderflowException
- このバッファ内に残っているbyte数が8 byteより少ない場合
-
putLong
public abstract ByteBuffer putLong(long value) long値を書き込む相対putメソッドです (オプションの操作)。このバッファの現在位置に、現在のbyte順序に従って、指定されたlong値を含む8 byteを書き込みます。位置の値は、そのたびに8ずつ増加します。
- パラメータ:
value
- 書き込まれるlong値- 戻り値:
- このバッファ
- throws:
BufferOverflowException
- このバッファ内に残っているbyte数が8 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
getLong
public abstract long getLong(int index) long値を読み取る絶対getメソッドです。指定されたインデックス位置にある8 byteを読み込み、現在のbyte順序に従って、これらをlong値に変換します。
- パラメータ:
index
- byteの読込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のlong値
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-7
-
putLong
public abstract ByteBuffer putLong(int index, long value) long値を書き込む絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたlong値を含む8 byteを書き込みます。
- パラメータ:
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるlong値- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-7ReadOnlyBufferException
- このバッファが読込み専用である場合
-
asLongBuffer
public abstract LongBuffer asLongBuffer()longバッファとしてこのbyteバッファのビューを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を8で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
- 戻り値:
- 新しいlongバッファ
-
getFloat
public abstract float getFloat()float値を読み取る相対getメソッドです。このバッファの現在位置から4 byteを読み込み、現在のbyte順序に従って、これらをfloat値に変換します。位置の値は、そのたびに4ずつ増加します。
- 戻り値:
- バッファの現在位置のfloat値
- throws:
BufferUnderflowException
- このバッファ内に残っているbyte数が4 byteより少ない場合
-
putFloat
public abstract ByteBuffer putFloat(float value) float値を書き込む相対putメソッドです (オプションの操作)。このバッファの現在位置に、現在のbyte順序に従って、指定されたfloat値を含む4 byteを書き込みます。位置の値は、そのたびに4ずつ増加します。
- パラメータ:
value
- 書き込まれるfloat値- 戻り値:
- このバッファ
- throws:
BufferOverflowException
- このバッファ内に残っているbyte数が4 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
getFloat
public abstract float getFloat(int index) float値を読み取る絶対getメソッドです。指定されたインデックス位置にある4 byteを読み込み、現在のbyte順序に従って、これらをfloat値に変換します。
- パラメータ:
index
- byteの読込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のfloat値
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-3
-
putFloat
public abstract ByteBuffer putFloat(int index, float value) float値を書き込む絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたfloat値を含む4 byteを書き込みます。
- パラメータ:
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるfloat値- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-3ReadOnlyBufferException
- このバッファが読込み専用である場合
-
asFloatBuffer
public abstract FloatBuffer asFloatBuffer()floatバッファとしてこのbyteバッファのビューを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を4で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
- 戻り値:
- 新しいfloatバッファ
-
getDouble
public abstract double getDouble()double値を読み取る相対getメソッドです。このバッファの現在位置から8 byteを読み込み、現在のbyte順序に従って、これらをdouble値に変換します。位置の値は、そのたびに8ずつ増加します。
- 戻り値:
- バッファの現在位置のdouble値
- throws:
BufferUnderflowException
- このバッファ内に残っているbyte数が8 byteより少ない場合
-
putDouble
public abstract ByteBuffer putDouble(double value) double値を書き込む相対putメソッドです (オプションの操作)。このバッファの現在位置に、現在のbyte順序に従って、指定されたdouble値を含む8 byteを書き込みます。位置の値は、そのたびに8ずつ増加します。
- パラメータ:
value
- 書き込まれるdouble値- 戻り値:
- このバッファ
- throws:
BufferOverflowException
- このバッファ内に残っているbyte数が8 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合
-
getDouble
public abstract double getDouble(int index) double値を読み取る絶対getメソッドです。指定されたインデックス位置にある8 byteを読み込み、現在のbyte順序に従って、これらをdouble値に変換します。
- パラメータ:
index
- byteの読込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のdouble値
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-7
-
putDouble
public abstract ByteBuffer putDouble(int index, double value) double値を書き込む絶対putメソッドです (オプションの操作)。このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたdouble値を含む8 byteを書き込みます。
- パラメータ:
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるdouble値- 戻り値:
- このバッファ
- throws:
IndexOutOfBoundsException
-index
が負の値である場合、またはバッファのリミット以上である場合、-7ReadOnlyBufferException
- このバッファが読込み専用である場合
-
asDoubleBuffer
public abstract DoubleBuffer asDoubleBuffer()doubleバッファとしてこのbyteバッファのビューを作成します。新しいバッファの内容は、このバッファの現在位置から始まります。 このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロになり、ビューが作成される時に、その容量とその制限はこのバッファに残っているバイト数を8で割ったものになり、そのマークは未定義となり、そのバイト・オーダーはバイト・バッファの順になります。 新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
- 戻り値:
- 新しいdoubleバッファ
-