|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし すべてのクラス | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.nio.Buffer | +--java.nio.ByteBuffer
byte バッファです。
このクラスは、byte バッファに対する操作を次の 6 つのカテゴリに分類します。
連続したバイトシーケンスをこのバッファから配列へと転送する相対
メソッド「一括 get」
連続したバイトシーケンスを byte 配列やその他の byte バッファからこのバッファへと転送する相対
メソッド「一括 put」
プリミティブ型の値の読み込みと書き込みを行い、これらの値とバイトシーケンスを特定のバイト順序で相互変換する絶対および相対
/「get」
メソッド「put」
プリミティブ型の値を格納するバッファとして byte バッファを表示できる、「ビューバッファ」の作成メソッド
byte バッファは、バッファの内容に容量を割り当てる方法 (
) か、既存の byte 配列をバッファにラップする方法 (容量の割り当て
) で作成できます。
ラップ
byte バッファには、「ダイレクト」バッファと「非ダイレクト」バッファがあります。ダイレクト byte バッファの場合、Java 仮想マシンは、ネイティブの入出力操作を直接実行しようとします。これは、基本となるオペレーティングシステム固有の入出力操作を呼び出す際、中間バッファを介さないということです。
ダイレクト byte バッファは、このクラスのファクトリメソッド allocateDirect
を呼び出すと作成されます。通常は、こちらのバッファのほうが、非ダイレクトバッファよりも割り当ておよび解放コストがやや高くなります。ダイレクトバッファの内容が標準のガベージコレクトされたヒープの外部にあるなら、アプリケーションのメモリフットプリントに対する影響はわずかです。このことから、ダイレクトバッファには、基本となるシステム固有の入出力操作に従属する、寿命が長く容量の大きいバッファを指定することをお勧めします。一般に、ダイレクトバッファの割り当ては、プログラムの性能を十分に改善できる見込みがある場合にのみ行うべきです。
ダイレクト byte バッファは、ファイルの一領域をダイレクトメモリにマップする方法 (
) でも作成できます。Java プラットフォームの実装は、JNI を介してネイティブコードからダイレクト byte バッファを生成する機能をサポートしています。こうしたバッファのインスタンスがメモリ内のアクセスできない領域を参照している場合、その領域にアクセスしようとしても、アクセス時かそのあとで未指定の例外がスローされるだけで、バッファの内容は変更されません。
マッピング
ダイレクト byte バッファであるかどうかは、isDirect
メソッドを呼び出すことで判断できます。このメソッドを使用すれば、性能が重視されるコード内で明示的にバッファ管理を行うことができます。
このクラスは、その他のすべてのプリミティブ型 (boolean を除く) の値の読み込みと書き込みを行うメソッドを定義します。プリミティブ値は、バッファの現在のバイト順序に従って、バイトシーケンスと相互変換されます。バッファ順序の取得および変更には、order
メソッドを使用します。特定のバイト順序は、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 バッファにその内容が表示されます。この 2 つのバッファの位置、リミット、マークの値は、それぞれ独立しています。たとえば、
asFloatBuffer
メソッドは、このメソッドの呼び出し元 byte バッファを利用するFloatBuffer
クラスのインスタンスを生成します。char、short、int、long、double の各型にも、同様のビュー作成メソッドが定義されています。ビューバッファには、前述した型固有の「get」や「get」メソッドのファミリに勝る重要な利点が 3 つあります。
ビューバッファには、バイトではなく、その値の型固有のサイズによってインデックスが付けられる
ビューバッファは、バッファと配列または同じ型のその他のバッファ間で連続した値のシーケンスをやりとりできる、相対一括「get」および「put」メソッドを提供する
ビューバッファは、補助 byte バッファがダイレクトバッファである場合にかぎりダイレクトバッファになるという点で、潜在的に効率がよい
ビューの生成時、ビューバッファのバイト順序は byte バッファのバイト順序と同じになります。
呼び出しの連鎖
このクラスのメソッドのうち戻り値を返さないものは、自身を呼び出したバッファの情報を返します。これを応用して、メソッド呼び出しを連鎖させることができます。 たとえば、次のような連続した文があるとしましょう。
これらは、次の一文で置き換えられます。bb.putInt(0xCAFEBABE); bb.putShort(3); bb.putShort(45);bb.putInt(0xCAFEBABE).putShort(3).putShort(45);
- 導入されたバージョン:
- 1.4
メソッドの概要 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(Object ob)
このバッファを別のオブジェクトと比較します。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()
このバッファがダイレクトバッファであるかどうかを判断します。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
メソッドの詳細 allocateDirect
public static ByteBuffer allocateDirect(int capacity)
- 新しいダイレクト byte バッファを割り当てます。
新しいバッファの位置は 0、リミットは容量と同じ値になります。マークは定義されません。
を利用するかどうかは未指定です。
補助配列
- パラメータ:
capacity
- 新しいバッファの容量 (バイト)- 戻り値:
- 新しい byte バッファ
allocate
public static ByteBuffer allocate(int capacity)
- 新しい byte バッファを割り当てます。
新しいバッファの位置は 0、リミットは容量と同じ値になります。マークは定義されません。このバッファは
を利用することになっており、その
補助配列
は 0 です。
配列オフセット
- パラメータ:
capacity
- 新しいバッファの容量 (バイト)- 戻り値:
- 新しい byte バッファ
wrap
public static ByteBuffer wrap(byte[] array, int offset, int length)
- byte 配列をバッファにラップします。
新しいバッファは指定された byte 配列によって指示されます。バッファに変更を加えると byte 配列が変更され、byte 配列に変更を加えるとバッファが変更されます。新しいバッファの容量は array.length、位置は offset、リミットは offset + length になります。マークは定義されません。指定された配列が
となり、その{@link #arrayOffset
補助配列
配列オフセット
は 0 になります。
- パラメータ:
array
- 新しいバッファを補助する配列offset
- 使用するサブ配列の長さ。array.length 以下の正の数でなければならない。新しいバッファの位置は、この値に設定されるlength
- 使用するサブ配列の長さ。array.length - offset 以下の正の数でなければならない。新しいバッファのリミットは、offset + length に設定される- 戻り値:
- 新しい byte バッファ
- 例外:
IndexOutOfBoundsException
- offset パラメータと length パラメータの前提条件が満たされていない場合
wrap
public static ByteBuffer wrap(byte[] array)
- byte 配列をバッファにラップします。
新しいバッファは指定された byte 配列によって指示されます。バッファに変更を加えると byte 配列が変更され、byte 配列に変更を加えるとバッファが変更されます。新しいバッファの容量とリミットは array.length、位置は 0 になります。マークは定義されません。指定された配列が
となり、その
補助配列
は 0 になります。
配列オフセット
- パラメータ:
array
- このバッファを補助する配列- 戻り値:
- 新しい byte バッファ
slice
public abstract ByteBuffer slice()
- このバッファの共有のサブシーケンスを内容とする新しい byte バッファを作成します。
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。逆の場合も同じです。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合にかぎりダイレクトバッファになります。また、このバッファが読み込み専用バッファである場合にかぎり読み込み専用バッファになります。
- 戻り値:
- 新しい byte バッファ
duplicate
public abstract ByteBuffer duplicate()
- このバッファの内容を共有する新しい byte バッファを作成します。
新しいバッファの内容は、このバッファの内容と同じになります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。逆の場合も同じです。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、リミット、位置、マークの値は、このバッファの対応する値と同じになります。新しいバッファは、このバッファがダイレクトバッファである場合にかぎりダイレクトバッファになります。また、このバッファが読み込み専用バッファである場合にかぎり読み込み専用バッファになります。
- 戻り値:
- 新しい byte バッファ
asReadOnlyBuffer
public abstract ByteBuffer asReadOnlyBuffer()
- このバッファの内容を共有する新しい読み込み専用 byte バッファを作成します。
新しいバッファの内容は、このバッファの内容と同じになります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。しかし、新しいバッファ自体は読み込み専用であり、その共有の内容を変更することはできません。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの容量、リミット、位置、マークの値は、このバッファの対応する値と同じになります。
このバッファが読み込み専用の場合、このメソッドの動作は
duplicate
メソッドとまったく同じになります。
- 戻り値:
- 新しい読み込み専用 byte バッファ
get
public abstract byte get()
- 相対「get」メソッドです。このバッファの現在位置を読み込み、その位置の値を増加します。
- 戻り値:
- バッファの現在位置のバイト
- 例外:
BufferUnderflowException
- バッファの現在位置がリミット以上である場合
put
public abstract ByteBuffer put(byte b)
- 相対「put」メソッドです (任意操作)。
このバッファの現在位置に指定されたバイトを書き込み、その位置の値を増加します。
- パラメータ:
b
- 書き込まれるバイト- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファの現在位置がリミット以上である場合ReadOnlyBufferException
- このバッファが読み込み専用バッファである場合
get
public abstract byte get(int index)
- 絶対「get」メソッドです。指定されたインデックス位置のバイトを読み込みます。
- パラメータ:
index
- バイトの読み込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置のバイト
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミット以上である場合
put
public abstract ByteBuffer put(int index, byte b)
- 絶対「put」メソッドです (任意操作)。
このバッファのインデックス位置に指定されたバイトを書き込みます。
- パラメータ:
index
- バイトの書き込み先を示すインデックスb
- 書き込まれるバイト値- 戻り値:
- このバッファ
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミット以上である場合ReadOnlyBufferException
- このバッファが読み込み専用バッファである場合
get
public ByteBuffer get(byte[] dst, int offset, int length)
- 相対「一括 get」メソッドです。
このメソッドは、このバッファから指定された配列にバイトを転送します。このバッファ内に残っているバイト数が要求に満たない場合 (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
- 最初のバイトの書き込み先となる配列内のオフセット。dst.length 以下の正の数でなければならないlength
- 指定された配列に書き込まれる最大バイト数。dst.length - offset 以下の正の数でなければならない- 戻り値:
- このバッファ
- 例外:
BufferUnderflowException
- このバッファ内に残っているバイト数が length よりも少ない場合IndexOutOfBoundsException
- offset パラメータと length パラメータの前提条件が満たされていない場合
get
public ByteBuffer get(byte[] dst)
- 相対「一括 get」メソッドです。
このメソッドは、このバッファから指定された配列へバイトを転送します。このメソッドを src.get(a) の形式で呼び出すと、以下の呼び出しと同じ結果になります。
src.get(a, 0, a.length)
- 戻り値:
- このバッファ
- 例外:
BufferUnderflowException
- このバッファ内に残っているバイト数が length よりも少ない場合
put
public ByteBuffer put(ByteBuffer src)
- 相対「一括 put」メソッドです (任意操作)。
このメソッドは、指定されたソースバッファ内に残っているバイトをこのバッファへ転送します。ソースバッファ内に残っているバイト数がこのバッファ内に残っているバイト数よりも多い場合 (src.remaining() > remaining())、バイトは一切転送されず、
BufferOverflowException
がスローされます。それ以外の場合、このメソッドは、指定されたバッファの現在位置からこのバッファの現在位置へ n = src.remaining() バイトをコピーします。そのたびに、両方のバッファの位置が n ずつ増加します。
このメソッドを dst.put(src) の形式で呼び出すと、以下のループとまったく同じ結果になります。
while (src.hasRemaining()) dst.put(src.get());ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。
- パラメータ:
src
- バイトが読み込まれるソースバッファ (このバッファ以外)- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファに、ソースバッファのバイトを格納できるだけの容量がない場合IllegalArgumentException
- ソースバッファとしてこのバッファを指定した場合ReadOnlyBufferException
- このバッファが読み込み専用バッファである場合
put
public ByteBuffer put(byte[] src, int offset, int length)
- 相対「一括 put」メソッドです (任意操作)。
このメソッドは、指定されたソース配列からこのバッファへバイトを転送します。配列からコピーするバイト数がこのバッファ内に残っているバイト数より多い場合 (length > remaining())、バイトは一切転送されず、
BufferOverflowException
がスローされます。それ以外の場合、このメソッドは、指定された配列の指定されたオフセット位置からこのバッファの現在位置へ length 分バイトをコピーします。そのたびに、このバッファの位置が length ずつ増加します。
このメソッドを dst.put(src, off, len) の形式で呼び出すと、以下のループとまったく同じ結果になります。
for (int i = off; i < off + len; i++) dst.put(a[i]);ただし、このバッファ内に十分な容量があることを最初に確認する動作は除きます。また、このメソッドを使用したほうがループよりもはるかに効率的です。
- パラメータ:
offset
- 最初のバイトが読み込まれる配列内のオフセット。array.length 以下の正の数でなければならないlength
- 指定された配列から読み取られるバイト数。array.length - offset 以下の正の数でなければならない- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っている容量が不足している場合IndexOutOfBoundsException
- offset パラメータと length パラメータの前提条件が満たされていない場合ReadOnlyBufferException
- このバッファが読み込み専用バッファである場合
put
public final ByteBuffer put(byte[] src)
- 相対一括「put」メソッドです (任意操作)。
このメソッドは、ソースとなる指定された byte 配列の内容全体をこのバッファへ転送します。このメソッドを dst.put(a) の形式で呼び出すと、以下の呼び出しと同じ結果になります。
dst.put(a, 0, a.length)
- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っている容量が不足している場合ReadOnlyBufferException
- このバッファが読み込み専用バッファである場合
hasArray
public final boolean hasArray()
- このバッファがアクセス可能な byte 配列を利用するかどうかを判断します。
このメソッドの戻り値が true であれば、
array
メソッドとarrayOffset
メソッドを安全に呼び出すことができます。
- 戻り値:
- このバッファが配列を利用しており、読み込み専用でない場合にかぎり true
array
public final byte[] array()
- このバッファを補助する byte 配列を返します (任意操作)。
このバッファの内容に変更を加えると、返される配列の内容も変更されます。その逆も同様です。
このメソッドを呼び出す前に
hasArray
メソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。
- 戻り値:
- このバッファを補助する配列
- 例外:
ReadOnlyBufferException
- このバッファが配列を利用し、しかも読み込み専用である場合UnsupportedOperationException
- このバッファがアクセス可能な配列を利用しない場合
arrayOffset
public final int arrayOffset()
- このバッファの補助配列の最初の要素のオフセットを返します (任意操作)。
このバッファが配列によって補助されていれば、その位置 p が配列のインデックス p + arrayOffset() と一致します。
このメソッドを呼び出す前に
hasArray
メソッドを呼び出し、このバッファがアクセス可能な補助配列を持っていることを確認します。
- 戻り値:
- このバッファの配列内の最初の要素のオフセット
- 例外:
ReadOnlyBufferException
- このバッファが配列によって補助され、しかも読み込み専用である場合UnsupportedOperationException
- このバッファがアクセス可能な配列によって補助されない場合
compact
public abstract ByteBuffer compact()
- このバッファを圧縮します (任意操作)。
バッファの現在位置からリミットまでの間にバイトが存在する場合、これらをバッファの先頭にコピーします。つまり、インデックス位置 p = position() のバイトがインデックス 0 にコピーされ、インデックス位置 p + 1 のバイトがインデックス 1 にコピーされるということです。インデックス位置 limit() - 1 のバイトがインデックス n = limit() - 1 - p にコピーされるまで、同様の処理が繰り返されます。最終的にバッファの位置は n に設定され、リミットは容量の値と等しくなります。マークは破棄されます。
バッファの位置は、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
- このバッファが読み込み専用バッファである場合
isDirect
public abstract boolean isDirect()
- このバッファがダイレクトバッファであるかどうかを判断します。
- 戻り値:
- このバッファがダイレクトバッファである場合にかぎり true
toString
public String toString()
- このバッファの状態を簡単に説明する文字列を返します。
- オーバーライド:
- クラス
Object
内のtoString
- 戻り値:
- 概要文字列
hashCode
public int hashCode()
- このバッファの現在のハッシュコードを返します。
byte バッファのハッシュコードは、バッファ内に残っている残りの要素、すなわち position() ~ limit() - 1 の要素だけに依存します。
バッファのハッシュコードは内容依存型です。今後バッファの内容が変更されないことが明らかでないかぎり、バッファをハッシュマップその他のデータ構造のキーとして使用することは避けてください。
- オーバーライド:
- クラス
Object
内のhashCode
- 戻り値:
- このバッファの現在のハッシュコード
- 関連項目:
Object.equals(java.lang.Object)
,Hashtable
equals
public boolean equals(Object ob)
- このバッファが別のオブジェクトと等価であるかどうかを判断します。
2 つの byte バッファは、次の場合にかぎり等価です。
要素の型が同じである
バッファ内に残っている要素数が同じである
バッファ内に残っている要素のシーケンス (開始位置とは無関係) が各点で等しい
byte バッファが、その他の型のオブジェクトと等価になることはありません。
- オーバーライド:
- クラス
Object
内のequals
- パラメータ:
ob
- このバッファと比較するオブジェクト- 戻り値:
- このバッファが指定されたオブジェクトと等価である場合にかぎり true
- 関連項目:
Object.hashCode()
,Hashtable
compareTo
public int compareTo(Object ob)
- このバッファを別のオブジェクトと比較します。
2 つの byte バッファを比較する際は、バッファ内に残っている要素のシーケンスが辞書順に比較されます。このとき、双方のバッファ内に残っているシーケンスの開始位置は考慮されません。
byte バッファをその他の型のオブジェクトと比較することはできません。
- 定義:
- インタフェース
Comparable
内のcompareTo
- パラメータ:
ob
- 比較対象の Object- 戻り値:
- このバッファがもう一方のバッファより小さい場合は負の整数、等しい場合は 0、大きい場合は正の整数
- 例外:
ClassCastException
- 引数が byte バッファではない場合
order
public final ByteOrder order()
- このバッファのバイト順序を取得します。
バイト順序は、複数バイトの値を読み取るときや書き込むとき、そしてこの byte バッファのビューとなるバッファを作成するときに使用します。新しく作成された byte バッファの順序は常に
BIG_ENDIAN
になります。
- 戻り値:
- このバッファのバイト順序
order
public final ByteBuffer order(ByteOrder bo)
- このバッファのバイト順序を変更します。
- パラメータ:
bo
- 新しいバイト順序BIG_ENDIAN
またはLITTLE_ENDIAN
- 戻り値:
- このバッファ
getChar
public abstract char getChar()
- char 値を読み取る相対「get」メソッドです。
このバッファの現在位置から 2 バイトを読み込み、現在のバイト順序に従って、これらを char 値に変換します。位置の値は、そのたびに 2 ずつ増加します。
- 戻り値:
- バッファの現在位置の char 値
- 例外:
BufferUnderflowException
- このバッファ内に残っているバイト数が 2 バイトより少ない場合
putChar
public abstract ByteBuffer putChar(char value)
- char 値を書き込む相対「put」メソッドです (任意操作)。
このバッファの現在位置に、現在のバイト順序に従って、指定された char 値を含む 2 バイトを書き込みます。位置の値は、そのたびに 2 ずつ増加します。
- パラメータ:
value
- 書き込まれる char 値- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っているバイト数が 2 バイトより少ない場合
getChar
public abstract char getChar(int index)
- char 値を読み取る絶対「get」メソッドです。
指定されたインデックス位置にある 2 バイトを読み込み、現在のバイト順序に従って、これらを char 値に変換します。
- パラメータ:
index
- バイトの読み込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置の char 値
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 1 を引いた値以上である場合
putChar
public abstract ByteBuffer putChar(int index, char value)
- char 値を書き込む絶対「put」メソッドです (任意操作)。
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された char 値を含む 2 バイトを書き込みます。
- パラメータ:
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる char 値- 戻り値:
- このバッファ
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 1 を引いた値以上である場合
asCharBuffer
public abstract CharBuffer asCharBuffer()
- char バッファとしてこの byte バッファのビューを作成します。
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。逆の場合も同じです。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/2 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合にかぎりダイレクトバッファになります。また、このバッファが読み込み専用バッファである場合にかぎり読み込み専用バッファになります。
- 戻り値:
- 新しい char バッファ
getShort
public abstract short getShort()
- short 値を読み取る相対「get」メソッドです。
このバッファの現在位置から 2 バイトを読み込み、現在のバイト順序に従って、これらを short 値に変換します。位置の値は、そのたびに 2 ずつ増加します。
- 戻り値:
- バッファの現在位置の short 値
- 例外:
BufferUnderflowException
- このバッファ内に残っているバイト数が 2 バイトより少ない場合
putShort
public abstract ByteBuffer putShort(short value)
- short 値を書き込む相対「put」メソッドです (任意操作)。
このバッファの現在位置に、現在のバイト順序に従って、指定された short 値を含む 2 バイトを書き込みます。位置の値は、そのたびに 2 ずつ増加します。
- パラメータ:
value
- 書き込まれる short 値- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っているバイト数が 2 バイトより少ない場合
getShort
public abstract short getShort(int index)
- short 値を読み取る絶対「get」メソッドです。
指定されたインデックス位置にある 2 バイトを読み込み、現在のバイト順序に従って、これらを short 値に変換します。
- パラメータ:
index
- バイトの読み込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置の short 値
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 1 を引いた値以上である場合
putShort
public abstract ByteBuffer putShort(int index, short value)
- short 値を書き込む絶対「put」メソッドです (任意操作)。
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された short 値を含む 2 バイトを書き込みます。
- パラメータ:
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる short 値- 戻り値:
- このバッファ
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 1 を引いた値以上である場合
asShortBuffer
public abstract ShortBuffer asShortBuffer()
- short バッファとしてこの byte バッファのビューを作成します。
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。逆の場合も同じです。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/2 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合にかぎりダイレクトバッファになります。また、このバッファが読み込み専用バッファである場合にかぎり読み込み専用バッファになります。
- 戻り値:
- 新しい short バッファ
getInt
public abstract int getInt()
- int 値を読み取る相対「get」メソッドです。
このバッファの現在位置から 4 バイトを読み込み、現在のバイト順序に従って、これらを int 値に変換します。位置の値は、そのたびに 4 ずつ増加します。
- 戻り値:
- バッファの現在位置の int 値
- 例外:
BufferUnderflowException
- このバッファ内に残っているバイト数が 4 バイトより少ない場合
putInt
public abstract ByteBuffer putInt(int value)
- int 値を書き込む相対「put」メソッドです (任意操作)。
このバッファの現在位置に、現在のバイト順序に従って、指定された int 値を含む 4 バイトを書き込みます。位置の値は、そのたびに 4 ずつ増加します。
- パラメータ:
value
- 書き込まれる int 値- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っているバイト数が 4 バイトより少ない場合
getInt
public abstract int getInt(int index)
- int 値を読み取る絶対「get」メソッドです。
指定されたインデックス位置にある 4 バイトを読み込み、現在のバイト順序に従って、これらを int 値に変換します。
- パラメータ:
index
- バイトの読み込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置の int 値
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 3 を引いた値以上である場合
putInt
public abstract ByteBuffer putInt(int index, int value)
- int 値を書き込む絶対「put」メソッドです (任意操作)。
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された int 値を含む 4 バイトを書き込みます。
- パラメータ:
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる int 値- 戻り値:
- このバッファ
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 3 を引いた値以上である場合
asIntBuffer
public abstract IntBuffer asIntBuffer()
- int バッファとしてこの byte バッファのビューを作成します。
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。逆の場合も同じです。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/4 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合にかぎりダイレクトバッファになります。また、このバッファが読み込み専用バッファである場合にかぎり読み込み専用バッファになります。
- 戻り値:
- 新しい int バッファ
getLong
public abstract long getLong()
- long 値を読み取る相対「get」メソッドです。
このバッファの現在位置から 8 バイトを読み込み、現在のバイト順序に従って、これらを long 値に変換します。位置の値は、そのたびに 8 ずつ増加します。
- 戻り値:
- バッファの現在位置の long 値
- 例外:
BufferUnderflowException
- このバッファ内に残っているバイト数が 8 バイトより少ない場合
putLong
public abstract ByteBuffer putLong(long value)
- long 値を書き込む相対「put」メソッドです (任意操作)。
このバッファの現在位置に、現在のバイト順序に従って、指定された long 値を含む 8 バイトを書き込みます。位置の値は、そのたびに 8 ずつ増加します。
- パラメータ:
value
- 書き込まれる long 値- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っているバイト数が 8 バイトより少ない場合
getLong
public abstract long getLong(int index)
- long 値を読み取る絶対「get」メソッドです。
指定されたインデックス位置にある 8 バイトを読み込み、現在のバイト順序に従って、これらを long 値に変換します。
- パラメータ:
index
- バイトの読み込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置の long 値
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 7 を引いた値以上である場合
putLong
public abstract ByteBuffer putLong(int index, long value)
- long 値を書き込む絶対「put」メソッドです (任意操作)。
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された long 値を含む 8 バイトを書き込みます。
- パラメータ:
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる long 値- 戻り値:
- このバッファ
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 7 を引いた値以上である場合
asLongBuffer
public abstract LongBuffer asLongBuffer()
- long バッファとしてこの byte バッファのビューを作成します。
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。逆の場合も同じです。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/8 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合にかぎりダイレクトバッファになります。また、このバッファが読み込み専用バッファである場合にかぎり読み込み専用バッファになります。
- 戻り値:
- 新しい long バッファ
getFloat
public abstract float getFloat()
- float 値を読み取る相対「get」メソッドです。
このバッファの現在位置から 4 バイトを読み込み、現在のバイト順序に従って、これらを float 値に変換します。位置の値は、そのたびに 4 ずつ増加します。
- 戻り値:
- バッファの現在位置の float 値
- 例外:
BufferUnderflowException
- このバッファ内に残っているバイト数が 4 バイトより少ない場合
putFloat
public abstract ByteBuffer putFloat(float value)
- float 値を書き込む相対「put」メソッドです (任意操作)。
このバッファの現在位置に、現在のバイト順序に従って、指定された float 値を含む 4 バイトを書き込みます。位置の値は、そのたびに 4 ずつ増加します。
- パラメータ:
value
- 書き込まれる float 値- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っているバイト数が 4 バイトより少ない場合
getFloat
public abstract float getFloat(int index)
- float 値を読み取る絶対「get」メソッドです。
指定されたインデックス位置にある 4 バイトを読み込み、現在のバイト順序に従って、これらを float 値に変換します。
- パラメータ:
index
- バイトの読み込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置の float 値
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 3 を引いた値以上である場合
putFloat
public abstract ByteBuffer putFloat(int index, float value)
- float 値を書き込む絶対「put」メソッドです (任意操作)。
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された float 値を含む 4 バイトを書き込みます。
- パラメータ:
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる float 値- 戻り値:
- このバッファ
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 3 を引いた値以上である場合
asFloatBuffer
public abstract FloatBuffer asFloatBuffer()
- float バッファとしてこの byte バッファのビューを作成します。
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。逆の場合も同じです。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/4 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合にかぎりダイレクトバッファになります。また、このバッファが読み込み専用バッファである場合にかぎり読み込み専用バッファになります。
- 戻り値:
- 新しい float バッファ
getDouble
public abstract double getDouble()
- double 値を読み取る相対「get」メソッドです。
このバッファの現在位置から 8 バイトを読み込み、現在のバイト順序に従って、これらを double 値に変換します。位置の値は、そのたびに 8 ずつ増加します。
- 戻り値:
- バッファの現在位置の double 値
- 例外:
BufferUnderflowException
- このバッファ内に残っているバイト数が 8 バイトより少ない場合
putDouble
public abstract ByteBuffer putDouble(double value)
- double 値を書き込む相対「put」メソッドです (任意操作)。
このバッファの現在位置に、現在のバイト順序に従って、指定された double 値を含む 8 バイトを書き込みます。位置の値は、そのたびに 8 ずつ増加します。
- パラメータ:
value
- 書き込まれる double 値- 戻り値:
- このバッファ
- 例外:
BufferOverflowException
- このバッファ内に残っているバイト数が 8 バイトより少ない場合
getDouble
public abstract double getDouble(int index)
- double 値を読み取る絶対「get」メソッドです。
指定されたインデックス位置にある 8 バイトを読み込み、現在のバイト順序に従って、これらを double 値に変換します。
- パラメータ:
index
- バイトの読み込み位置を示すインデックス- 戻り値:
- 指定されたインデックス位置の double 値
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 7 を引いた値以上である場合
putDouble
public abstract ByteBuffer putDouble(int index, double value)
- double 値を書き込む絶対「put」メソッドです (任意操作)。
このバッファの指定されたインデックス位置に、現在のバイト順序に従って、指定された double 値を含む 8 バイトを書き込みます。
- パラメータ:
index
- バイトの書き込み先を示すインデックスvalue
- 書き込まれる double 値- 戻り値:
- このバッファ
- 例外:
IndexOutOfBoundsException
- index が負の数である場合、またはバッファのリミットから 7 を引いた値以上である場合
asDoubleBuffer
public abstract DoubleBuffer asDoubleBuffer()
- double バッファとしてこの byte バッファのビューを作成します。
新しいバッファの内容は、このバッファの現在位置から始まります。このバッファの内容に変更を加えると、その内容が新しいバッファに反映されます。逆の場合も同じです。2 つのバッファの位置、リミット、マークの値はそれぞれ異なります。
新しいバッファの位置は 0、容量とリミットはこのバッファ内に残っているバイト数の 1/8 になります。マークは定義されません。新しいバッファは、このバッファがダイレクトバッファである場合にかぎりダイレクトバッファになります。また、このバッファが読み込み専用バッファである場合にかぎり読み込み専用バッファになります。
- 戻り値:
- 新しい double バッファ
概要 パッケージ クラス 使用 階層ツリー 非推奨 API 索引 ヘルプ JavaTM 2
Platform
Std. Ed. v1.4.0前のクラス 次のクラス フレームあり フレームなし すべてのクラス 概要: 入れ子 | フィールド | コンストラクタ | メソッド 詳細: フィールド | コンストラクタ | メソッド
バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.