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 バッファーの場合、Java 仮想マシンは、ネイティブの入出力操作を直接実行しようとします。これは、基本となるオペレーティングシステム固有の入出力操作を呼び出す際、中間バッファーを介さないということです。
ダイレクト byte バッファーは、このクラスのファクトリメソッド ダイレクト byte バッファーは、ファイルの特定の領域をメモリーに直接 特定の byte バッファーがダイレクトバッファー、非ダイレクトバッファーのどちらであるかを判断するには、 このクラスには、その他のすべてのプリミティブ型 (boolean を除く) の値の読み込みと書き込みを行うメソッドが定義されています。プリミティブ値と byte シーケンスとの相互変換は、バッファーの現在の byte 順序に従って行われます。byte 順序を取得および変更するには、 異種バイナリデータ、すなわち型の異なる値のシーケンスにアクセスできるようにするため、このクラスは、型ごとに一連の絶対および相対 get/put メソッドのファミリを定義します。たとえば、32 ビットの浮動小数点数 (float 値) の場合、次のメソッドが定義されます。
char、short、int、long、および double の各型にも、同様のメソッドが定義されています。絶対 get/put メソッドのインデックスパラメータの単位は、読み込みまたは書き込みの対象となる型ではなく、byte です。
同種のバイナリデータ、すなわち同じ型の値のシーケンスにアクセスできるようにするため、このクラスには、指定された byte バッファーの「ビュー」を作成できるメソッドが定義されています。「ビューバッファー」とは、byte バッファーに連動した内容を持つ、別のバッファーのことです。byte バッファーの内容に変更を加えると、ビューバッファーにもその内容が反映されます。反対に、ビューバッファーの内容に変更を加えると、byte バッファーにもその内容が反映されます。この 2 つのバッファーの位置、リミット、マークの値は、それぞれ独立しています。たとえば、 ビューバッファーには、前述した一連の型固有の get/put メソッドに勝る重要な利点が 3 つあります。
ビューバッファーには、byte ではなく、その値の型固有のサイズによってインデックスが付けられる ビューバッファーは、バッファーと配列または同じ型のその他のバッファー間で連続した値のシーケンスをやりとりできる、相対一括 get/put メソッドを提供する ビューバッファーは、補助 byte バッファーがダイレクトバッファーである場合にかぎりダイレクトバッファーになるという点で、潜在的に効率がよい ビューバッファーの byte 順序は、ビューの生成時に byte バッファーと同じものに固定されます。 このクラスのメソッドのうち戻り値を返さないものは、自身を呼び出したバッファーの情報を返します。これを応用して、メソッド呼び出しを連鎖させることができます。
たとえば、次のような連続した文があるとしましょう。
割り当て
を実行するか、
既存の byte 配列をバッファー内に
ラップ
します。
ダイレクトバッファーと非ダイレクトバッファー
allocateDirect
を呼び出すと作成されます。通常は、こちらのバッファーのほうが、非ダイレクトバッファーよりも割り当ておよび解放コストがやや高くなります。ダイレクトバッファーの内容が標準のガベージコレクトされたヒープの外部にあるなら、アプリケーションのメモリーフットプリントに対する影響はわずかです。このことから、ダイレクトバッファーには、基本となるシステム固有の入出力操作に従属する、寿命が長く容量の大きいバッファーを指定することをお勧めします。一般に、ダイレクトバッファーの割り当ては、プログラムの性能を十分に改善できる見込みがある場合にのみ行うべきです。
マッピング
する方法でも作成できます。Java プラットフォームの実装によっては、JNI を介してネイティブコードからダイレクト byte バッファーを生成する機能がオプションでサポートされている可能性があります。こうした種類のバッファーのインスタンスが、メモリー内のアクセスできない領域を参照した場合、その領域にアクセスしようとしてもバッファーの内容は変更されず、アクセス時またはアクセス後に何らかの例外がスローされます。
isDirect
メソッドを呼び出します。このメソッドを使用すると、性能が重視されるコード内で明示的にバッファー管理を行えます。
バイナリデータへのアクセス
order
メソッドを使用します。特定の byte 順序は、ByteOrder
クラスのインスタンスで表されます。byte バッファーの初期順序は、常に BIG_ENDIAN
です。
float
getFloat()
float getFloat(int index)
void putFloat(float f)
void putFloat(int index, float f)
asFloatBuffer
メソッドは、このメソッドの呼び出し元の byte バッファーに連動した FloatBuffer
クラスのインスタンスを作成します。char、short、int、long、および double の各型にも、同様のビュー作成メソッドが定義されています。
呼び出しの連鎖
これらは、次の一文で置き換えられます。
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)
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)
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) >=ゼロ|| 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, 2013, Oracle and/or its affiliates. All rights reserved.