ByteBuffer クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バイト バッファー。
[Android.Runtime.Register("java/nio/ByteBuffer", DoNotGenerateAcw=true)]
public abstract class ByteBuffer : Java.Nio.Buffer, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("java/nio/ByteBuffer", DoNotGenerateAcw=true)>]
type ByteBuffer = class
inherit Buffer
interface IComparable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 継承
- 派生
- 属性
- 実装
注釈
バイト バッファー。
このクラスは、バイト バッファーに対する 6 つのカテゴリの操作を定義します。
<ul>
<李>
1 バイトの読み取りと#put(byte) <i>put</i>
書き込みを行う絶対および相対#get() <i>get</i>
メソッド。
</李>
<李>
このバッファーから配列に連続したバイト シーケンスを転送する相対 #get(byte[]) <i>bulk get</i>
メソッド。
</李>
<李>
バイト配列またはその他のバイト バッファーからこのバッファーに連続するバイト シーケンスを転送する相対 #put(byte[]) <i>bulk put</i>
メソッド。
</李>
<李>
他のプリミティブ型の値を読み取りおよび書き込み、特定のバイト順のバイト シーケンスとの間で変換する絶対および相対#getChar() <i>get</i>
#putChar(char) <i>put</i>
メソッド。
</李>
<李>
ビュー バッファーを作成するためのメソッド。バイト バッファーを、他のプリミティブ型の値を含むバッファーとして表示できます。
</李>
<李>
#compact compacting
、#duplicate duplicating
、および#slice slicing
バイト バッファーのメソッド。
</李>
</ul>
バイト バッファーは、バッファーの領域を割り当てるいずれかの方法で #allocate <i>allocation</i>
作成できます。
コンテンツ、または既存のバイト配列によって #wrap(byte[]) <i>wrapping</i>
バッファーに格納されます。
"direct"><h2> Direct vs. non-direct buffers </h2>
バイト バッファーは、直接または非ダイレクトのいずれかです。 直接バイト バッファーを指定すると、Java 仮想マシンはネイティブ I/O 操作を直接実行するためのベスト エフォートを行います。 つまり、基になるオペレーティング システムのネイティブ I/O 操作の各呼び出しの前 (または後) に、バッファーの内容を中間バッファーにコピーしないようにします。
直接バイト バッファーは、このクラスのファクトリ メソッドを #allocateDirect(int) allocateDirect
呼び出すことによって作成できます。 通常、このメソッドによって返されるバッファーは、非直接バッファーよりも割り当てコストと割り当て解除コストがやや高くなります。 ダイレクト バッファーの内容は、通常のガベージ コレクション ヒープの外部に存在する可能性があるため、アプリケーションのメモリ占有領域への影響は明らかではない可能性があります。 そのため、基になるシステムのネイティブ I/O 操作の対象となる有効期間の長い大規模なバッファーには、主に直接バッファーを割り当てることをお勧めします。 一般に、ダイレクト バッファーを割り当てるのは、プログラムのパフォーマンスが測定可能な向上をもたらす場合にのみ行うのが最善です。
直接バイト バッファーは、ファイルの領域によって java.nio.channels.FileChannel#map mapping
メモリに直接作成される場合もあります。 Java プラットフォームの実装では、必要に応じて、JNI を介したネイティブ コードからの直接バイト バッファーの作成をサポートできます。 これらの種類のバッファーのいずれかのインスタンスがアクセスできないメモリ領域を参照している場合、その領域にアクセスしようとしてもバッファーの内容は変更されず、アクセス時または後で指定されていない例外がスローされます。
バイト バッファーがダイレクトバッファーか非ダイレクトバッファーかは、その #isDirect isDirect
メソッドを呼び出すことによって決定できます。 このメソッドは、パフォーマンスクリティカルなコードで明示的なバッファー管理を実行できるように提供されています。
"bin"><h2> バイナリ データ <へのアクセス /h2>
このクラスは、他のすべてのプリミティブ型の値を読み書きするためのメソッドを定義します。ただし boolean
、 プリミティブ値は、バッファーの現在のバイト順序に従ってバイトシーケンスに変換されます。これは、メソッドを介して #order order
取得および変更できます。 特定のバイトオーダーは、クラスの ByteOrder
インスタンスによって表されます。 バイト バッファーの最初の順序は常に ByteOrder#BIG_ENDIAN BIG_ENDIAN
です。
異種バイナリ データ (つまり、異なる型の値のシーケンス) にアクセスするために、このクラスは、各型の絶対メソッドと相対 get メソッドと put メソッドのファミリを定義します。 たとえば、32 ビット浮動小数点値の場合、このクラスは次を定義します。
<blockquote>
float {@link #getFloat()}
float {@link #getFloat(int) getFloat(int index)}
void {@link #putFloat(float) putFloat(float f)}
void {@link #putFloat(int,float) putFloat(int index, float f)}
</blockquote>
対応するメソッドは、型char
、short
、int
long
および double
. 絶対 get メソッドと put メソッドのインデックス パラメーターは、読み取りまたは書き込み中の型ではなくバイト単位です。
"views">
同種のバイナリ データ (つまり、同じ型の値のシーケンス) にアクセスするために、このクラスは、特定のバイト バッファーのビューを作成できるメソッドを定義します。 ビュー バッファーは、コンテンツがバイト バッファーによってサポートされる単なる別のバッファーです。 バイト バッファーの内容への変更はビュー バッファーに表示され、その逆も同様です。2 つのバッファーの位置、制限、およびマークの値は独立しています。 たとえば、このメソッドは #asFloatBuffer() asFloatBuffer
、メソッドが FloatBuffer
呼び出されるバイト バッファーによってサポートされるクラスのインスタンスを作成します。 対応するビュー作成メソッドは、型 char
、 short
、、 int
、 long
および double
.
ビュー バッファーには、前述の型固有 の get メソッドと put メソッドのファミリに比べる 3 つの重要な利点があります。
<ul>
<李>
ビュー バッファーは、バイトではなく、その値の型固有のサイズの観点からインデックスが作成されます。
</李>
<李>
ビュー バッファーは、バッファーと配列、または同じ型の他のバッファーとの間で連続した値シーケンスを転送できる相対一括取得メソッドと put メソッドを提供します。
</李>
<李>
ビュー バッファーは、バッキング バイト バッファーが直接の場合にのみダイレクトになるため、はるかに効率的になる可能性があります。
</李>
</ul>
ビュー バッファーのバイト順は、ビューの作成時のバイト バッファーのバイト 順に固定されます。
<h2> 呼び出しチェーン </h2>
それ以外の場合は返す値を持たないこのクラスのメソッドは、呼び出されるバッファーを返すように指定されます。 これにより、メソッド呼び出しをチェーンできます。
ステートメントのシーケンス
<blockquote>
bb.putInt(0xCAFEBABE);
bb.putShort(3);
bb.putShort(45);
</blockquote>
たとえば、単一ステートメントに置き換えることができます
<blockquote>
bb.putInt(0xCAFEBABE).putShort(3).putShort(45);
</blockquote>
1.4 で追加されました。
の Java ドキュメントjava.nio.ByteBuffer
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
ByteBuffer(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
Char |
現在位置の char を返し、位置を 2 ずつ増やします。 |
Class |
この |
Double |
現在位置の double を返し、位置を 8 ずつ増やします。 |
Float |
現在位置の float を返し、位置を 4 ずつ増やします。 |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
HasArray |
このバッファーがアクセス可能なバイト配列によってサポートされているかどうかを示します。 |
HasRemaining |
現在の位置と制限の間に要素があるかどうかを示します。 (継承元 Buffer) |
Int |
現在位置の int を返し、位置を 4 ずつ増やします。 |
IsDirect |
直接バッファーの場合は true を返します。 (継承元 Buffer) |
IsReadOnly |
このバッファーが読み取り専用かどうかを示します。 (継承元 Buffer) |
JniIdentityHashCode |
バイト バッファー。 (継承元 Object) |
JniPeerMembers |
バイト バッファー。 |
Long |
現在位置の long を返し、位置を 8 ずつ増やします。 |
PeerReference |
バイト バッファー。 (継承元 Object) |
Short |
現在位置の short を返し、位置を 2 ずつ増やします。 |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
AlignedSlice(Int32) |
コンテンツがこのバッファーのコンテンツの共有およびアラインされたサブシーケンスである新しいバイト バッファーを作成します。 |
AlignmentOffset(Int32, Int32) |
指定されたインデックスのバイトを指し、指定された単位サイズの剰余を指すメモリ アドレスを返します。 |
Allocate(Int32) |
新しいバイト バッファーを割り当てます。 |
AllocateDirect(Int32) |
新しいダイレクト バイト バッファーを割り当てます。 |
ArrayOffset() |
バッファー の最初の要素のこのバッファーのバッキング配列内のオフセットを返します。 (省略可能な操作)。 |
AsCharBuffer() |
このバイト バッファーのビューを char バッファーとして作成します。 |
AsDoubleBuffer() |
このバイト バッファーのビューをダブル バッファーとして作成します。 |
AsFloatBuffer() |
このバイト バッファーのビューを float バッファーとして作成します。 |
AsIntBuffer() |
このバイト バッファーのビューを int バッファーとして作成します。 |
AsLongBuffer() |
このバイト バッファーのビューを長いバッファーとして作成します。 |
AsReadOnlyBuffer() |
このバッファーの内容を共有する、読み取り専用の新しいバイト バッファーを作成します。 |
AsShortBuffer() |
このバイト バッファーのビューを短いバッファーとして作成します。 |
Capacity() |
このバッファーの容量を返します。 (継承元 Buffer) |
Clear() |
このバッファーをクリアします。 (継承元 Buffer) |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Compact() |
このバッファーを圧縮します (省略可能な操作)。 |
CompareTo(ByteBuffer) |
このバッファーを別のバッファーと比較します。 |
Dispose() |
バイト バッファー。 (継承元 Object) |
Dispose(Boolean) |
バイト バッファー。 (継承元 Object) |
Duplicate() |
このバッファーのコンテンツを共有する新しいバイト バッファーを作成します。 |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
Flip() |
このバッファーを反転します。 (継承元 Buffer) |
Get() |
相対 get メソッド。 |
Get(Byte[]) |
相対一括 取得 メソッド。 |
Get(Byte[], Int32, Int32) |
相対一括 取得 メソッド。 |
Get(Int32) |
絶対 get メソッド。 |
GetChar(Int32) |
char 値を読み取るための絶対 get メソッド。 |
GetDirectBufferAddress() |
バイト バッファー。 (継承元 Buffer) |
GetDouble(Int32) |
double 値を読み取るための絶対 get メソッド。 |
GetFloat(Int32) |
浮動小数点値を読み取るための絶対 get メソッド。 |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
GetInt(Int32) |
int 値を読み取るための絶対 get メソッド。 |
GetLong(Int32) |
長い値を読み取るための絶対 get メソッド。 |
GetShort(Int32) |
短い値を読み取るための絶対 get メソッド。 |
JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Limit() |
このバッファーの制限を返します。 (継承元 Buffer) |
Limit(Int32) |
このバッファーの制限を設定します。 (継承元 Buffer) |
Mark() |
このバッファーの位置にマークを設定します。 (継承元 Buffer) |
Mismatch(ByteBuffer) |
このバッファーと特定のバッファーの最初の不一致の相対インデックスを検索して返します。 |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
Order() |
このバッファーのバイト順を取得します。 |
Order(ByteOrder) |
このバッファーのバイト順を変更します。 |
Position() |
このバッファーの位置を返します。 (継承元 Buffer) |
Position(Int32) |
このバッファーの位置を設定します。 (継承元 Buffer) |
Put(Byte[]) |
相対一括 配置 メソッド (省略可能な操作)。 |
Put(Byte[], Int32, Int32) |
相対一括 配置 メソッド (省略可能な操作)。 |
Put(ByteBuffer) |
相対一括 配置 メソッド (省略可能な操作)。 |
Put(Int32, SByte) |
絶対 put メソッド (省略可能な操作)。 |
Put(SByte) |
相対 put メソッド (省略可能な操作)。 |
PutChar(Char) |
char 値を書き込むための相対 put メソッド (省略可能な操作)。 |
PutChar(Int32, Char) |
char 値を書き込むための絶対 put メソッド (省略可能な操作)。 |
PutDouble(Double) |
double 値を書き込むための相対 put メソッド (省略可能な操作)。 |
PutDouble(Int32, Double) |
double 値を書き込むための絶対 put メソッド (省略可能な操作)。 |
PutFloat(Int32, Single) |
float 値を書き込むための絶対 put メソッド (省略可能な操作)。 |
PutFloat(Single) |
float 値を書き込むための相対 put メソッド (省略可能な操作)。 |
PutInt(Int32) |
int 値を書き込むための相対 put メソッド (省略可能な操作)。 |
PutInt(Int32, Int32) |
int 値を書き込むための絶対 put メソッド (省略可能な操作)。 |
PutLong(Int32, Int64) |
長い値を書き込むための絶対 put メソッド (省略可能な操作)。 |
PutLong(Int64) |
長い値を書き込むための相対 put メソッド (省略可能な操作)。 |
PutShort(Int16) |
短い値を書き込むための相対 put メソッド (省略可能な操作)。 |
PutShort(Int32, Int16) |
短い値を書き込むための絶対 put メソッド (省略可能な操作)。 |
Remaining() |
現在の位置と制限の間の要素の数を返します。 (継承元 Buffer) |
Reset() |
このバッファーの位置を、以前にマークした位置にリセットします。 (継承元 Buffer) |
Rewind() |
このバッファーを巻き戻します。 (継承元 Buffer) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
Slice() |
コンテンツがこのバッファーのコンテンツの共有サブシーケンスである新しいバイト バッファーを作成します。 |
Slice(Int32, Int32) |
コンテンツがこのバッファーのコンテンツの共有サブシーケンスである新しいバイト バッファーを作成します。 |
Slice(Int32, Int32) |
コンテンツがこのバッファーのコンテンツの共有サブシーケンスである新しいバッファーを作成します。 (継承元 Buffer) |
ToArray<T>() |
バイト バッファー。 (継承元 Object) |
ToString() |
オブジェクトの文字列表現を返します。 (継承元 Object) |
UnregisterFromRuntime() |
バイト バッファー。 (継承元 Object) |
Wait() |
現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wrap(Byte[]) |
バイト配列をバッファーにラップします。 |
Wrap(Byte[], Int32, Int32) |
バイト配列をバッファーにラップします。 |
明示的なインターフェイスの実装
IComparable.CompareTo(Object) |
バイト バッファー。 |
IJavaPeerable.Disposed() |
バイト バッファー。 (継承元 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
バイト バッファー。 (継承元 Object) |
IJavaPeerable.Finalized() |
バイト バッファー。 (継承元 Object) |
IJavaPeerable.JniManagedPeerState |
バイト バッファー。 (継承元 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
バイト バッファー。 (継承元 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
バイト バッファー。 (継承元 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
バイト バッファー。 (継承元 Object) |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
バイト バッファー。 |
GetJniTypeName(IJavaPeerable) |
バイト バッファー。 |