|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjava.nio.Buffer
java.nio.ByteBuffer
public abstract class ByteBuffer
byte バッファです。
このクラスに定義されている byte バッファに対する操作は、次の 6 つのカテゴリに分類できます。
連続した byte シーケンスをこのバッファから配列へと転送する相対
メソッド 一括 get
連続した byte シーケンスを byte 配列やその他の byte バッファからこのバッファへと転送する相対
メソッド 一括 put
その他のプリミティブ型の値の読み込みと書き込みを行い、これらの値と byte シーケンスを特定のバイト順序で相互変換する、絶対および相対
/get
メソッドput
その他のプリミティブ型の値を格納するバッファとして byte バッファを表示できる、「ビューバッファ」の作成メソッド
byte バッファを作成するには、バッファのコンテンツに容量を割り当てる byte バッファには、「ダイレクト」バッファと「非ダイレクト」バッファがあります。ダイレクト byte バッファの場合、Java 仮想マシンは、ネイティブの入出力操作を直接実行しようとします。これは、基本となるオペレーティングシステム固有の入出力操作を呼び出す際、中間バッファを介さないということです。
ダイレクト byte バッファは、このクラスのファクトリメソッド ダイレクト byte バッファは、ファイルの特定の領域をメモリに直接 特定の byte バッファがダイレクトバッファ、非ダイレクトバッファのどちらであるかを判断するには、 このクラスには、その他のすべてのプリミティブ型 (boolean を除く) の値の読み込みと書き込みを行うメソッドが定義されています。プリミティブ値とバイトシーケンスとの相互変換は、バッファの現在のバイト順序に従って行われます。バイト順序を取得および変更するには、 異種バイナリデータ、すなわち型の異なる値のシーケンスにアクセスできるようにするため、このクラスは、型ごとに一連の絶対および相対 get/put メソッドのファミリを定義します。たとえば、32 ビットの浮動小数点数 (float 値) の場合、次のメソッドが定義されます。
char、short、int、long、double の各型にも、同様のメソッドが定義されています。絶対 get/put メソッドのインデックスパラメータの単位は、読み込みまたは書き込みの対象となる型ではなく、バイトです。
同種のバイナリデータ、すなわち同じ型の値のシーケンスにアクセスできるようにするため、このクラスには、指定された byte バッファの「ビュー」を作成するメソッドが定義されています。「ビューバッファ」とは、バイトバッファによって補助された内容を持つ、別のバッファのことです。byte バッファの内容に変更を加えると、ビューバッファにもその内容が反映されます。反対に、ビューバッファの内容に変更を加えると、byte バッファにもその内容が反映されます。この 2 つのバッファの位置、リミット、マークの値は、それぞれ独立しています。たとえば、 ビューバッファには、前述した一連の型固有の get/put メソッドに勝る重要な利点が 3 つあります。
ビューバッファには、バイトではなく、その値の型固有のサイズによってインデックスが付けられる ビューバッファは、バッファと配列または同じ型のその他のバッファ間で連続した値のシーケンスをやりとりできる、相対一括 get/put メソッドを提供する ビューバッファは、補助 byte バッファがダイレクトバッファである場合に限りダイレクトバッファになるという点で、潜在的に効率がよい ビューバッファのバイト順序は、ビューの生成時に byte バッファと同じものに固定されます。 このクラスのメソッドのうち戻り値を返さないものは、自身を呼び出したバッファを返すように定義されています。このため、メソッド呼び出しを連鎖させることができます。
たとえば、次のような連続した文があるとしましょう。
操作を実行するか、
既存の byte 配列をバッファに割り当て
します。
ラップ
ダイレクトバッファと非ダイレクトバッファ
allocateDirect
を呼び出すと作成されます。通常は、こちらのバッファのほうが、非ダイレクトバッファよりも割り当ておよび解放コストがやや高くなります。ダイレクトバッファの内容が標準のガベージコレクトされたヒープの外部にあるなら、アプリケーションのメモリフットプリントに対する影響はわずかです。このことから、ダイレクトバッファには、基本となるシステム固有の入出力操作に従属する、寿命が長く容量の大きいバッファを指定することをお勧めします。一般に、ダイレクトバッファの割り当ては、プログラムの性能を十分に改善できる見込みがある場合にのみ行うべきです。
する方法でも作成できます。Java プラットフォームの実装によっては、JNI を介してネイティブコードからダイレクト byte バッファを生成する機能がオプションでサポートされている可能性があります。こうした種類のバッファのインスタンスが、メモリ内のアクセスできない領域を参照した場合、その領域にアクセスしようとしてもバッファのコンテンツは変更されず、アクセス時またはアクセス後に何らかの例外がスローされます。
マッピング
isDirect
メソッドを呼び出します。このメソッドを使用すると、性能が重視されるコード内で明示的にバッファ管理を行えます。
バイナリデータへのアクセス
order
メソッドを使用します。特定のバイト順序は、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()
元の100%マッチ:現在のバッファの現在のハッシュコードを返します。 |
abstract boolean |
isDirect()
この byte バッファがダイレクトバッファであるかどうかを判断します。 |
ByteOrder |
order()
現在のバッファのバイト順序を取得します。 |
ByteBuffer |
order(ByteOrder bo)
このバッファのバイト順序を変更します。 |
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 配列をバッファにラップします。 |
クラス java.nio.Buffer から継承されたメソッド |
---|
capacity, clear, flip, hasRemaining, isReadOnly, limit, limit, mark, position, position, remaining, reset, rewind |
クラス java.lang.Object から継承されたメソッド |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
メソッドの詳細 |
---|
public static ByteBuffer allocateDirect(int capacity)
新しいバッファの位置は 0、リミットは容量と同じ値になります。マークは定義されません。
を利用するかどうかは指定されません。 補助配列
capacity
- 新しいバッファの容量 (バイト)
IllegalArgumentException
- capacity が負の整数である場合public static ByteBuffer allocate(int capacity)
新しいバッファの位置は 0、リミットは容量と同じ値になります。マークは定義されません。このバッファは
を利用し、その補助配列
は 0 になります。
配列オフセット
capacity
- 新しいバッファの容量 (バイト)
IllegalArgumentException
- capacity が負の整数である場合public static ByteBuffer wrap(byte[] array, int offset, int length)
新しいバッファは指定された byte 配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。新しいバッファの容量は array.length、位置は offset、リミットは offset + length になります。マークは定義されません。指定された配列が
となり、その補助配列
は 0 になります。配列オフセット
array
- 新しいバッファを補助する配列offset
- 使用するサブ配列のオフセット。0 以上かつ array.length 以下の正の数でなければならない。新しいバッファの位置は、この値に設定されるlength
- 使用するサブ配列の長さ。0 以上かつ array.length - offset 以下の正の数でなければならない。新しいバッファのリミットは、offset + length に設定される
IndexOutOfBoundsException
- offset パラメータと length パラメータの前提条件が満たされていない場合public static ByteBuffer wrap(byte[] array)
新しいバッファは指定された byte 配列によって補助されます。バッファに変更を加えると配列も変更され、配列に変更を加えるとバッファも変更されます。新しいバッファの容量とリミットは array.length、位置は 0 になります。マークは定義されません。指定された配列が
となり、その補助配列
は 0 になります。配列オフセット
array
- 現在のバッファを補助する配列
public abstract ByteBuffer slice()
新しいバッファのコンテンツは、現在のバッファの現在位置から始まります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、このバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。
public abstract ByteBuffer duplicate()
新しいバッファのコンテンツは、現在のバッファのコンテンツと同じになります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、リミット、位置、マークの値は、現在のバッファの対応する値と同じになります。新しいバッファは、現在のバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、現在のバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。
public abstract ByteBuffer asReadOnlyBuffer()
新しいバッファのコンテンツは、現在のバッファのコンテンツと同じになります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。しかし、新しいバッファ自体は読み取り専用であり、その共有コンテンツを変更することはできません。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、リミット、位置、マークの値は、現在のバッファの対応する値と同じになります。
現在のバッファが読み取り専用の場合、このメソッドの動作は duplicate
メソッドとまったく同じになります。
public abstract byte get()
BufferUnderflowException
- バッファの現在位置がリミット以上である場合public abstract ByteBuffer put(byte b)
バッファの現在位置に指定されたバイトを書き込み、現在位置の値を増加します。
b
- 書き込まれるバイト
BufferOverflowException
- 現在のバッファの現在位置がリミット以上である場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract byte get(int index)
index
- バイトの読み込み位置を示すインデックス
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミット以上である場合public abstract ByteBuffer put(int index, byte b)
このバッファの指定されたインデックス位置に指定されたバイトを書き込みます。
index
- バイトの書き込み先を示すインデックスb
- 書き込まれるバイト値
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミット以上である場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public ByteBuffer get(byte[] dst, int offset, int length)
このメソッドは、このバッファから指定された配列にバイトを転送します。このバッファ内に残っているバイト数が要求に満たない場合 (つまり、length > remaining() である場合)、バイトは一切転送されず、BufferUnderflowException
がスローされます。
それ以外の場合、このメソッドは、このバッファの現在位置から length バイトを指定された配列の指定されたオフセット位置へコピーします。そのたびに、このバッファの位置が length ずつ増加します。
このメソッドを src.get(dst, off, len) の形式で呼び出すと、以下のループとまったく同じ結果になります。
for (int i = off; i < off + len; i++) dst[i] = src.get();ただし、このバッファ内に十分な数の byte 数があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。
dst
- バイトの書き込み先となる配列offset
- 最初のバイトの書き込み先となる配列内のオフセット。0 以上かつ dst.length 以下の正の数でなければならないlength
- 指定された配列に書き込まれる最大バイト数。0 以上かつ dst.length - offset 以下の正の数でなければならない
BufferUnderflowException
- このバッファ内に残っているバイト数が length よりも少ない場合
IndexOutOfBoundsException
- offset パラメータと length パラメータの前提条件が満たされていない場合public ByteBuffer get(byte[] dst)
このメソッドは、このバッファから指定された配列へバイトを転送します。このメソッドを src.get(a) の形式で呼び出すと、以下の呼び出しと同じ結果になります。
src.get(a, 0, a.length)
BufferUnderflowException
- このバッファ内に残っているバイト数が length よりも少ない場合public ByteBuffer put(ByteBuffer src)
このメソッドは、指定されたソースバッファ内に残っているバイトをこのバッファへ転送します。ソースバッファ内に残っているバイト数がこのバッファ内に残っているバイト数よりも多い場合 (つまり、src.remaining() > remaining() である場合)、バイトは一切転送されず、BufferOverflowException
がスローされます。
それ以外の場合、このメソッドは、指定されたバッファの現在位置からこのバッファの現在位置へ n = src.remaining() バイトをコピーします。そのたびに、両方のバッファの位置が n ずつ増加します。
このメソッドを dst.put(src) の形式で呼び出すと、以下のループとまったく同じ結果になります。
while (src.hasRemaining()) dst.put(src.get());ただし、現在のバッファ内に十分な容量があることを最初に確認する動作は、このメソッドに固有です。また、このメソッドのほうがループよりもずっと効率的です。
src
- バイトの読み込み先となるソースバッファ (このバッファ以外)
BufferOverflowException
- このバッファに、ソースバッファのバイトを格納できるだけの容量がない場合
IllegalArgumentException
- ソースバッファとして現在のバッファを指定した場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public ByteBuffer put(byte[] src, int offset, int length)
このメソッドは、指定されたソース配列からこのバッファへバイトを転送します。配列からコピーするバイト数がこのバッファ内に残っているバイト数より多い場合 (つまり、length > remaining() である場合)、バイトは一切転送されず、BufferOverflowException
がスローされます。
それ以外の場合、このメソッドは、指定された配列の指定されたオフセット位置からこのバッファの現在位置へ length 分バイトをコピーします。そのたびに、このバッファの位置が length ずつ増加します。
このメソッドを dst.put(src, off, len) の形式で呼び出すと、以下のループとまったく同じ結果になります。
for (int i = off; i < off + len; i++) dst.put(a[i]);ただし、現在のバッファ内に十分な容量があることを最初に確認する動作は、このメソッドに固有です。また、このメソッドのほうがループよりもずっと効率的です。
src
- バイトの読み込み先となる配列offset
- 最初のバイトの読み込み先となる配列内のオフセット。0 以上かつ array.length 以下の正の数でなければならないlength
- 指定された配列から読み取られるバイト数。0 以上かつ 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
メソッドを呼び出し、現在のバッファがアクセス可能な補助配列を持っていることを確認します。
ReadOnlyBufferException
- 現在のバッファが配列によって補助されており、しかも読み取り専用である場合
UnsupportedOperationException
- 現在のバッファがアクセス可能な配列によって補助されていない場合public final int arrayOffset()
現在のバッファが配列によって補助されていれば、その位置 p が配列のインデックス p + arrayOffset() と一致します。
このメソッドを呼び出す前に hasArray
メソッドを呼び出し、現在のバッファがアクセス可能な補助配列を持っていることを確認します。
ReadOnlyBufferException
- 現在のバッファが配列によって補助されており、しかも読み取り専用である場合
UnsupportedOperationException
- 現在のバッファがアクセス可能な配列によって補助されていない場合public abstract ByteBuffer compact()
バッファの現在位置からリミットまでの間にバイトが存在する場合、これらをバッファの先頭にコピーします。つまり、インデックス位置 p = position() のバイトがインデックス 0 にコピーされ、インデックス位置 p + 1 のバイトがインデックス 1 にコピーされるということです。インデックス位置 limit() - 1 のバイトがインデックス n = limit() - 1 - p にコピーされるまで、同様の処理が繰り返されます。最終的にバッファの位置は n+1 に設定され、リミットは容量の値と等しくなります。マークは破棄されます。
バッファの位置は、0 ではなく、コピーされるバイト数と等しくなります。したがって、このメソッドを呼び出したあと、すぐに別の相対「put」メソッドを呼び出すことができます。
このメソッドは、書き込みが終了しなかった場合にバッファからのデータの書き込みを実行する前に呼び出します。以下のループは、バッファ buf を使って、あるチャネルから別のチャネルにバイトをコピーします。
buf.clear(); // Prepare buffer for use for (;;) { if (in.read(buf) < 0 && !buf.hasRemaining()) break; // No more bytes to transfer buf.flip(); out.write(buf); buf.compact(); // In case of partial write }
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract boolean isDirect()
public String toString()
Object
内の toString
public int hashCode()
byte バッファのハッシュコードは、バッファ内に残っている残りの要素、すなわち position() 〜 limit() - 1 の要素だけに依存します。
バッファのハッシュコードはコンテンツ依存型です。今後バッファのコンテンツが変更されないことが明らかでないかぎり、バッファをハッシュマップその他のデータ構造のキーとして使用することは避けてください。
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object ob)
2 つの byte バッファは、次の場合に限り等価です。
要素の型が同じである
バッファ内に残っている要素数が同じである
バッファ内に残っている要素のシーケンス (開始位置とは無関係) が各点で等しい (pointwise equal)
byte バッファが、その他の型のオブジェクトと等価になることはありません。
Object
内の equals
ob
- 現在のバッファと比較するオブジェクト
Object.hashCode()
,
Hashtable
public int compareTo(ByteBuffer that)
2 つの byte バッファを比較する際は、バッファ内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファ内に残っているシーケンスの開始位置は考慮されません。
byte バッファをその他の型のオブジェクトと比較することはできません。
Comparable<ByteBuffer>
内の compareTo
that
- 比較対象の Object
public final ByteOrder order()
バイト順序は、複数バイトの値を読み取るときや書き込むとき、そしてこの byte バッファのビューとなるバッファを作成するときに使用します。新しく作成された byte バッファの順序は常に BIG_ENDIAN
になります。
public final ByteBuffer order(ByteOrder bo)
bo
- 新しいバイト順序。BIG_ENDIAN
、LITTLE_ENDIAN
のいずれか
public abstract char getChar()
このバッファの現在位置から 2 バイトを読み込み、現在のバイト順序に従って、これらを char 値に変換します。位置の値は、そのたびに 2 ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているバイト数が 2 バイトより少ない場合public abstract ByteBuffer putChar(char value)
このバッファの現在位置に、現在のバイト順序に従って、指定された char 値を含む 2 バイトを書き込みます。位置の値は、そのたびに 2 ずつ増加します。
value
- 書き込まれる char 値
BufferOverflowException
- このバッファ内に残っているバイト数が 2 バイトより少ない場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract char getChar(int index)
指定されたインデックス位置にある 2 バイトを読み込み、現在のバイト順序に従って、これらを char 値に変換します。
index
- バイトの読み込み位置を示すインデックス
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 1 を引いた値以上である場合public abstract ByteBuffer putChar(int index, char value)
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された char 値を含む 2 バイトを書き込みます。
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる char 値
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 1 を引いた値以上である場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract CharBuffer asCharBuffer()
新しいバッファのコンテンツは、現在のバッファの現在位置から始まります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/2 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、このバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。
public abstract short getShort()
このバッファの現在位置から 2 バイトを読み込み、現在のバイト順序に従って、これらを short 値に変換します。位置の値は、そのたびに 2 ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているバイト数が 2 バイトより少ない場合public abstract ByteBuffer putShort(short value)
このバッファの現在位置に、現在のバイト順序に従って、指定された short 値を含む 2 バイトを書き込みます。位置の値は、そのたびに 2 ずつ増加します。
value
- 書き込まれる short 値
BufferOverflowException
- このバッファ内に残っているバイト数が 2 バイトより少ない場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract short getShort(int index)
指定されたインデックス位置にある 2 バイトを読み込み、現在のバイト順序に従って、これらを short 値に変換します。
index
- バイトの読み込み位置を示すインデックス
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 1 を引いた値以上である場合public abstract ByteBuffer putShort(int index, short value)
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された short 値を含む 2 バイトを書き込みます。
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる short 値
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 1 を引いた値以上である場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract ShortBuffer asShortBuffer()
新しいバッファのコンテンツは、現在のバッファの現在位置から始まります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/2 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、このバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。
public abstract int getInt()
このバッファの現在位置から 4 バイトを読み込み、現在のバイト順序に従って、これらを int 値に変換します。位置の値は、そのたびに 4 ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているバイト数が 4 バイトより少ない場合public abstract ByteBuffer putInt(int value)
このバッファの現在位置に、現在のバイト順序に従って、指定された int 値を含む 4 バイトを書き込みます。位置の値は、そのたびに 4 ずつ増加します。
value
- 書き込まれる int 値
BufferOverflowException
- このバッファ内に残っているバイト数が 4 バイトより少ない場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract int getInt(int index)
指定されたインデックス位置にある 4 バイトを読み込み、現在のバイト順序に従って、これらを int 値に変換します。
index
- バイトの読み込み位置を示すインデックス
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 3 を引いた値以上である場合public abstract ByteBuffer putInt(int index, int value)
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された int 値を含む 4 バイトを書き込みます。
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる int 値
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 3 を引いた値以上である場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract IntBuffer asIntBuffer()
新しいバッファのコンテンツは、現在のバッファの現在位置から始まります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/4 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、このバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。
public abstract long getLong()
このバッファの現在位置から 8 バイトを読み込み、現在のバイト順序に従って、これらを long 値に変換します。位置の値は、そのたびに 8 ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているバイト数が 8 バイトより少ない場合public abstract ByteBuffer putLong(long value)
このバッファの現在位置に、現在のバイト順序に従って、指定された long 値を含む 8 バイトを書き込みます。位置の値は、そのたびに 8 ずつ増加します。
value
- 書き込まれる long 値
BufferOverflowException
- このバッファ内に残っているバイト数が 8 バイトより少ない場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract long getLong(int index)
指定されたインデックス位置にある 8 バイトを読み込み、現在のバイト順序に従って、これらを long 値に変換します。
index
- バイトの読み込み位置を示すインデックス
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 7 を引いた値以上である場合public abstract ByteBuffer putLong(int index, long value)
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された long 値を含む 8 バイトを書き込みます。
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる long 値
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 7 を引いた値以上である場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract LongBuffer asLongBuffer()
新しいバッファのコンテンツは、現在のバッファの現在位置から始まります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/8 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、このバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。
public abstract float getFloat()
このバッファの現在位置から 4 バイトを読み込み、現在のバイト順序に従って、これらを float 値に変換します。位置の値は、そのたびに 4 ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているバイト数が 4 バイトより少ない場合public abstract ByteBuffer putFloat(float value)
このバッファの現在位置に、現在のバイト順序に従って、指定された float 値を含む 4 バイトを書き込みます。位置の値は、そのたびに 4 ずつ増加します。
value
- 書き込まれる float 値
BufferOverflowException
- このバッファ内に残っているバイト数が 4 バイトより少ない場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract float getFloat(int index)
指定されたインデックス位置にある 4 バイトを読み込み、現在のバイト順序に従って、これらを float 値に変換します。
index
- バイトの読み込み位置を示すインデックス
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 3 を引いた値以上である場合public abstract ByteBuffer putFloat(int index, float value)
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された float 値を含む 4 バイトを書き込みます。
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる float 値
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 3 を引いた値以上である場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract FloatBuffer asFloatBuffer()
新しいバッファのコンテンツは、現在のバッファの現在位置から始まります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/4 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、このバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。
public abstract double getDouble()
このバッファの現在位置から 8 バイトを読み込み、現在のバイト順序に従って、これらを double 値に変換します。位置の値は、そのたびに 8 ずつ増加します。
BufferUnderflowException
- このバッファ内に残っているバイト数が 8 バイトより少ない場合public abstract ByteBuffer putDouble(double value)
このバッファの現在位置に、現在のバイト順序に従って、指定された double 値を含む 8 バイトを書き込みます。位置の値は、そのたびに 8 ずつ増加します。
value
- 書き込まれる double 値
BufferOverflowException
- このバッファ内に残っているバイト数が 8 バイトより少ない場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract double getDouble(int index)
指定されたインデックス位置にある 8 バイトを読み込み、現在のバイト順序に従って、これらを double 値に変換します。
index
- バイトの読み込み位置を示すインデックス
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 7 を引いた値以上である場合public abstract ByteBuffer putDouble(int index, double value)
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された double 値を含む 8 バイトを書き込みます。
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる double 値
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 7 を引いた値以上である場合
ReadOnlyBufferException
- 現在のバッファが読み取り専用バッファである場合public abstract DoubleBuffer asDoubleBuffer()
新しいバッファのコンテンツは、現在のバッファの現在位置から始まります。現在のバッファのコンテンツに変更を加えると、その内容が新しいバッファに反映されます。新しいバッファのコンテンツに変更を加えると、その内容が現在のバッファに反映されます。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/8 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合に限りダイレクトバッファになります。また、このバッファが読み取り専用バッファである場合に限り読み取り専用バッファになります。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。