public abstract class ByteBuffer extends Buffer implements Comparable<ByteBuffer>
このクラスは、byteバッファに対する操作を次の6つのカテゴリに分類します。
連続したbyteシーケンスをこのバッファから配列へと転送する相対一括get
メソッド。
連続したbyteシーケンスをbyte配列やその他のbyteバッファからこのバッファへと転送する相対一括put
メソッド。
その他のプリミティブ型の値の読み込みと書込みを行い、これらの値とbyteシーケンスを特定のbyte順序で相互変換する、絶対および相対get
/put
メソッド。
その他のプリミティブ型の値を格納するバッファとしてbyteバッファを表示できる、「ビュー・バッファ」の作成メソッド
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値)の場合、次のメソッドが定義されます。
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);
修飾子と型 | メソッドと説明 |
---|---|
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バッファのビューを作成します。
|
abstract ByteBuffer |
compact()
このバッファを圧縮します (オプションの操作)。
|
int |
compareTo(ByteBuffer that)
このバッファを別のバッファと比較します。
|
abstract ByteBuffer |
duplicate()
このバッファの内容を共有する新しいbyteバッファを作成します。
|
boolean |
equals(Object ob)
このバッファが別のオブジェクトと等価であるかどうかを判断します。
|
abstract byte |
get()
相対getメソッドです。
|
ByteBuffer |
get(byte[] dst)
相対一括getメソッドです。
|
ByteBuffer |
get(byte[] dst, int offset, int length)
相対一括getメソッドです。
|
abstract byte |
get(int index)
絶対getメソッドです。
|
abstract char |
getChar()
char値を読み取る相対getメソッドです。
|
abstract char |
getChar(int index)
char値を読み取る絶対getメソッドです。
|
abstract double |
getDouble()
double値を読み取る相対getメソッドです。
|
abstract double |
getDouble(int index)
double値を読み取る絶対getメソッドです。
|
abstract float |
getFloat()
float値を読み取る相対getメソッドです。
|
abstract float |
getFloat(int index)
float値を読み取る絶対getメソッドです。
|
abstract int |
getInt()
int値を読み取る相対getメソッドです。
|
abstract int |
getInt(int index)
int値を読み取る絶対getメソッドです。
|
abstract long |
getLong()
long値を読み取る相対getメソッドです。
|
abstract long |
getLong(int index)
long値を読み取る絶対getメソッドです。
|
abstract short |
getShort()
short値を読み取る相対getメソッドです。
|
abstract short |
getShort(int index)
short値を読み取る絶対getメソッドです。
|
boolean |
hasArray()
このバッファがアクセス可能なbyte配列に連動するかどうかを判断します。
|
int |
hashCode()
このバッファの現在のハッシュ・コードを返します。
|
abstract boolean |
isDirect()
このbyteバッファがダイレクト・バッファであるかどうかを判断します。
|
ByteOrder |
order()
このバッファのbyte順序を取得します。
|
ByteBuffer |
order(ByteOrder bo)
このバッファのbyte順序を変更します。
|
abstract ByteBuffer |
put(byte b)
相対putメソッドです (オプションの操作)。
|
ByteBuffer |
put(byte[] src)
相対一括putメソッドです (オプションの操作)。
|
ByteBuffer |
put(byte[] src, int offset, int length)
相対一括putメソッドです (オプションの操作)。
|
ByteBuffer |
put(ByteBuffer src)
相対一括putメソッドです (オプションの操作)。
|
abstract ByteBuffer |
put(int index, byte b)
絶対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 |
slice()
このバッファの共有のサブシーケンスを内容とする新しいbyteバッファを作成します。
|
String |
toString()
このバッファの状態を要約した文字列を返します。
|
static ByteBuffer |
wrap(byte[] array)
byte配列をバッファにラップします。
|
static ByteBuffer |
wrap(byte[] array, int offset, int length)
byte配列をバッファにラップします。
|
public static ByteBuffer allocateDirect(int capacity)
新しいバッファの位置はゼロ、リミットは容量と同じ値になり、マークは定義されず、各要素はゼロに初期化されます。補助配列
を利用するかどうかは指定されません。
capacity
- 新しいバッファの容量(byte)IllegalArgumentException
- capacityが負の整数である場合public static ByteBuffer allocate(int capacity)
capacity
- 新しいバッファの容量(byte)IllegalArgumentException
- capacityが負の整数である場合public static ByteBuffer wrap(byte[] array, int offset, int length)
新しいバッファは指定されたbyte配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。新しいバッファの容量はarray.length、位置はoffset、リミットはoffset+lengthになり、マークは定義されません。指定された配列が補助配列
となり、その配列オフセット
はゼロになります。
array
- 新しいバッファを補助する配列offset
-使用するサブ配列のオフセット。array.length以下の負でない値でなければならない。新しいバッファの位置は、この値に設定される。length
- 使用するサブ配列の長さ。array.length - offset以下の負でない値でなければならない。新しいバッファのリミットは、offset+lengthに設定される。IndexOutOfBoundsException
- offsetパラメータとlengthパラメータの前提条件が満たされていない場合public static ByteBuffer wrap(byte[] array)
新しいバッファは指定されたbyte配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。新しいバッファの容量とリミットはarray.length、位置はゼロになり、マークは定義されません。指定された配列が補助配列
となり、その配列オフセット
はゼロになります。
array
- このバッファを補助する配列public abstract ByteBuffer slice()
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロ、容量とリミットはこのバッファ内に残っているbyte数になります。マークは定義されません。新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
public abstract ByteBuffer duplicate()
新しいバッファの内容は、このバッファの内容と同じになります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、リミット、位置、マークの値は、このバッファの対応する値と同じになります。新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
public abstract ByteBuffer asReadOnlyBuffer()
新しいバッファの内容は、このバッファの内容と同じになります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。しかし、新しいバッファ自体は読取り専用であり、その共有内容を変更することはできません。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、リミット、位置、マークの値は、このバッファの対応する値と同じになります。
このバッファ自身が読込み専用の場合は、このメソッドはduplicate
と同じように動作します。
public abstract byte get()
BufferUnderflowException
- バッファの現在位置がリミット以上である場合public abstract ByteBuffer put(byte b)
バッファの現在位置に指定されたbyteを書き込み、現在位置の値を増加します。
b
- 書き込まれるbyteBufferOverflowException
- このバッファの現在位置がリミット以上である場合ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract byte get(int index)
index
- byteの読込み位置を示すインデックスIndexOutOfBoundsException
- indexが負の数である場合、またはバッファのリミット以上である場合public abstract ByteBuffer put(int index, byte b)
このバッファの指定されたインデックス位置に指定されたbyteを書き込みます。
index
- byteの書込み先を示すインデックスb
- 書き込まれるbyte値IndexOutOfBoundsException
- indexが負の数である場合、またはバッファのリミット以上である場合ReadOnlyBufferException
- このバッファが読込み専用である場合public ByteBuffer get(byte[] dst, int offset, int length)
このメソッドは、このバッファから指定された配列へ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パラメータの前提条件が満たされていない場合public ByteBuffer get(byte[] dst)
このメソッドは、このバッファから指定された配列へbyteを転送します。このメソッドをsrc.get(a)の形式で呼び出すと、次の呼び出しと同じ結果になります。
src.get(a, 0, a.length)
dst
- コピー先配列BufferUnderflowException
- このバッファ内に残っているbyte数がlengthよりも少ない場合public ByteBuffer put(ByteBuffer src)
このメソッドは、指定されたソース・バッファ内に残っている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
- このバッファが読込み専用である場合public ByteBuffer put(byte[] src, int offset, int length)
このメソッドは、指定されたソース配列からこのバッファへbyteを転送します。配列からコピーするbyte数がこのバッファ内に残っているbyte数より多い場合(つまり、length > remaining()である場合)、byteは一切転送されず、BufferOverflowException
がスローされます。
それ以外の場合、このメソッドは、指定された配列の指定されたオフセット位置からこのバッファの現在位置へlength個のbyteをコピーします。そのたびに、このバッファの位置がlengthずつ増加します。
このメソッドをdst.put(src, off, len)の形式で呼び出すと、次のループとまったく同じ結果になります。
for (int i = off; i < off + len; i++)
dst.put(a[i]);
ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。src
- byteの読込み先となる配列offset
- 最初のbyteの読込み先となる配列内のオフセット。array.length以下の負でない値にする必要があるlength
- 指定された配列から読み取られるbyte数。array.length - offset以下の負でない値でなければならないBufferOverflowException
- このバッファ内に残っている容量が不足している場合IndexOutOfBoundsException
- offsetパラメータとlengthパラメータの前提条件が満たされていない場合ReadOnlyBufferException
- このバッファが読込み専用である場合public final ByteBuffer put(byte[] src)
このメソッドは、ソースとなる指定されたbyte配列の内容全体をこのバッファへ転送します。このメソッドをdst.put(a)の形式で呼び出すと、次の呼び出しと同じ結果になります。
dst.put(a, 0, a.length)
src
- 転送元配列BufferOverflowException
- このバッファ内に残っている容量が不足している場合ReadOnlyBufferException
- このバッファが読込み専用である場合public final boolean hasArray()
このメソッドの戻り値がtrueであれば、array
およびarrayOffset
メソッドを安全に呼び出すことができます。
public final byte[] array()
このバッファの内容に変更を加えると、返される配列の内容も変更されます。その逆も同様です。
このメソッドを呼び出す前にhasArray
メソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。
array
、クラス: Buffer
ReadOnlyBufferException
- このバッファが配列に連動しており、しかも読込み専用である場合UnsupportedOperationException
- このバッファがアクセス可能な配列を利用しない場合public final int arrayOffset()
このバッファが配列に連動していれば、その位置pが配列のインデックスp + arrayOffset()と一致します。
このメソッドを呼び出す前にhasArray
メソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。
arrayOffset
、クラス: Buffer
ReadOnlyBufferException
- このバッファが配列に連動しており、しかも読込み専用である場合UnsupportedOperationException
- このバッファがアクセス可能な配列を利用しない場合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
- このバッファが読込み専用である場合public abstract boolean isDirect()
public String toString()
public int hashCode()
byteバッファのハッシュ・コードは、バッファ内に残っている要素、すなわちposition()からlimit() - 1までの要素のみに依存します。
バッファのハッシュ・コードは内容依存型です。今後バッファの内容が変更されないことが明らかでないかぎり、バッファをハッシュ・マップその他のデータ構造のキーとして使用することは避けてください。
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object ob)
2つのbyteバッファは、次の場合にかぎり等価です。
要素の型が同じである
バッファ内に残っている要素数が同じである
バッファ内に残っている要素のシーケンス(開始位置とは無関係)が各点で等しい(pointwise equal)
byteバッファが、その他の型のオブジェクトと等価になることはありません。
equals
、クラス: Object
ob
- このバッファと比較するオブジェクトObject.hashCode()
、HashMap
public int compareTo(ByteBuffer that)
2つのbyteバッファを比較する際は、バッファ内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファ内に残っているシーケンスの開始位置は考慮されません。Byte.compare(byte,byte)
を呼び出したかのように、byte
要素のペアが比較されます。
byteバッファとその他の型のオブジェクトを比較することはできません。
compareTo
、インタフェース: Comparable<ByteBuffer>
that
- 比較対象のオブジェクト。public final ByteOrder order()
byte順序は、複数バイトの値を読み取るときや書き込むとき、そしてこのbyteバッファのビューとなるバッファを作成するときに使用します。新しく作成されたbyteバッファの順序は常にBIG_ENDIAN
になります。
public final ByteBuffer order(ByteOrder bo)
bo
- 新しいbyte順序。BIG_ENDIAN
またはLITTLE_ENDIAN
のいずれかpublic abstract char getChar()
このバッファの現在位置から2 byteを読み込み、現在のbyte順序に従って、これらをchar値に変換します。位置の値は、そのたびに2ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているbyte数が2 byteより少ない場合public abstract ByteBuffer putChar(char value)
このバッファの現在位置に、現在のbyte順序に従って、指定されたchar値を含む2 byteを書き込みます。位置の値は、そのたびに2ずつ増加します。
value
- 書き込まれるchar値BufferOverflowException
- このバッファ内に残っているbyte数が2 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract char getChar(int index)
指定されたインデックス位置にある2 byteを読み込み、現在のbyte順序に従って、これらをchar値に変換します。
index
- byteの読込み位置を示すインデックスIndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-1public abstract ByteBuffer putChar(int index, char value)
このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたchar値を含む2 byteを書き込みます。
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるchar値IndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-1ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract CharBuffer asCharBuffer()
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロ、容量とリミットはこのバッファ内に残っているbyte数の1/2になります。マークは定義されません。新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
public abstract short getShort()
このバッファの現在位置から2 byteを読み込み、現在のbyte順序に従って、これらをshort値に変換します。位置の値は、そのたびに2ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているbyte数が2 byteより少ない場合public abstract ByteBuffer putShort(short value)
このバッファの現在位置に、現在のbyte順序に従って、指定されたshort値を含む2 byteを書き込みます。位置の値は、そのたびに2ずつ増加します。
value
- 書き込まれるshort値BufferOverflowException
- このバッファ内に残っているbyte数が2 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract short getShort(int index)
指定されたインデックス位置にある2 byteを読み込み、現在のbyte順序に従って、これらをshort値に変換します。
index
- byteの読込み位置を示すインデックスIndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-1public abstract ByteBuffer putShort(int index, short value)
このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたshort値を含む2 byteを書き込みます。
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるshort値IndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-1ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract ShortBuffer asShortBuffer()
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロ、容量とリミットはこのバッファ内に残っているbyte数の1/2になります。マークは定義されません。新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
public abstract int getInt()
このバッファの現在位置から4 byteを読み込み、現在のbyte順序に従って、これらをint値に変換します。位置の値は、そのたびに4ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているbyte数が4 byteより少ない場合public abstract ByteBuffer putInt(int value)
このバッファの現在位置に、現在のbyte順序に従って、指定されたint値を含む4 byteを書き込みます。位置の値は、そのたびに4ずつ増加します。
value
- 書き込まれるint値BufferOverflowException
- このバッファ内に残っているbyte数が4 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract int getInt(int index)
指定されたインデックス位置にある4 byteを読み込み、現在のbyte順序に従って、これらをint値に変換します。
index
- byteの読込み位置を示すインデックスIndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-3public abstract ByteBuffer putInt(int index, int value)
このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたint値を含む4 byteを書き込みます。
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるint値IndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-3ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract IntBuffer asIntBuffer()
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロ、容量とリミットはこのバッファ内に残っているbyte数の1/4になります。マークは定義されません。新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
public abstract long getLong()
このバッファの現在位置から8 byteを読み込み、現在のbyte順序に従って、これらをlong値に変換します。位置の値は、そのたびに8ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているbyte数が8 byteより少ない場合public abstract ByteBuffer putLong(long value)
このバッファの現在位置に、現在のbyte順序に従って、指定されたlong値を含む8 byteを書き込みます。位置の値は、そのたびに8ずつ増加します。
value
- 書き込まれるlong値BufferOverflowException
- このバッファ内に残っているbyte数が8 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract long getLong(int index)
指定されたインデックス位置にある8 byteを読み込み、現在のbyte順序に従って、これらをlong値に変換します。
index
- byteの読込み位置を示すインデックスIndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-7public abstract ByteBuffer putLong(int index, long value)
このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたlong値を含む8 byteを書き込みます。
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるlong値IndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-7ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract LongBuffer asLongBuffer()
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロ、容量とリミットはこのバッファ内に残っているbyte数の1/8になります。マークは定義されません。新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
public abstract float getFloat()
このバッファの現在位置から4 byteを読み込み、現在のbyte順序に従って、これらをfloat値に変換します。位置の値は、そのたびに4ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているbyte数が4 byteより少ない場合public abstract ByteBuffer putFloat(float value)
このバッファの現在位置に、現在のbyte順序に従って、指定されたfloat値を含む4 byteを書き込みます。位置の値は、そのたびに4ずつ増加します。
value
- 書き込まれるfloat値BufferOverflowException
- このバッファ内に残っているbyte数が4 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract float getFloat(int index)
指定されたインデックス位置にある4 byteを読み込み、現在のbyte順序に従って、これらをfloat値に変換します。
index
- byteの読込み位置を示すインデックスIndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-3public abstract ByteBuffer putFloat(int index, float value)
このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたfloat値を含む4 byteを書き込みます。
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるfloat値IndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-3ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract FloatBuffer asFloatBuffer()
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロ、容量とリミットはこのバッファ内に残っているbyte数の1/4になります。マークは定義されません。新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
public abstract double getDouble()
このバッファの現在位置から8 byteを読み込み、現在のbyte順序に従って、これらをdouble値に変換します。位置の値は、そのたびに8ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているbyte数が8 byteより少ない場合public abstract ByteBuffer putDouble(double value)
このバッファの現在位置に、現在のbyte順序に従って、指定されたdouble値を含む8 byteを書き込みます。位置の値は、そのたびに8ずつ増加します。
value
- 書き込まれるdouble値BufferOverflowException
- このバッファ内に残っているbyte数が8 byteより少ない場合ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract double getDouble(int index)
指定されたインデックス位置にある8 byteを読み込み、現在のbyte順序に従って、これらをdouble値に変換します。
index
- byteの読込み位置を示すインデックスIndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-7public abstract ByteBuffer putDouble(int index, double value)
このバッファの指定されたインデックス位置に、現在のbyte順序に従って、指定されたdouble値を含む8 byteを書き込みます。
index
- byteの書込み先を示すインデックスvalue
- 書き込まれるdouble値IndexOutOfBoundsException
- indexが負の値である場合、またはバッファのリミット以上である場合、-7ReadOnlyBufferException
- このバッファが読込み専用である場合public abstract DoubleBuffer asDoubleBuffer()
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。新しいバッファの内容に変更を加えると、その内容がこのバッファに反映されます。2つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置はゼロ、容量とリミットはこのバッファ内に残っているbyte数の1/8になります。マークは定義されません。新しいバッファは、このバッファがダイレクト・バッファである場合にかぎりダイレクト・バッファになります。また、このバッファが読取り専用バッファである場合にかぎり読取り専用バッファになります。
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.