言語

ByteBuffer クラス

定義

バイト バッファー。

[Android.Runtime.Register("java/nio/ByteBuffer", DoNotGenerateAcw=true)]
public abstract class ByteBuffer : Java.Nio.Buffer, IDisposable, 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>

<li>

1 バイトの読み取りと書き込みを行う絶対 #get() <i>get</i> および相対 #put(byte) <i>put</i> メソッド。

</li>

<li>

このバッファーから配列に連続したバイト シーケンスを転送する絶対および相対 #get(byte[]) <i>bulk get</i> メソッド。

</li>

<li>

バイト配列またはその他のバイト バッファーからこのバッファーに連続したバイト シーケンスを転送する絶対および相対 #put(byte[]) <i>bulk put</i> メソッド。

</li>

<li>

他のプリミティブ型の値を読み書きする絶対および相対 #getChar() <i>get</i> メソッドと #putChar(char) <i>put</i> メソッド。特定のバイト順のバイト シーケンスとの間で変換されます。

</li>

<li>

ビュー バッファーを作成するためのメソッド。バイト バッファーを、他のプリミティブ型の値を含むバッファーとして表示できます。および

</li>

<li>

バイト バッファーを #compact compacting するメソッド。

</li>

</ul>

バイト バッファーは、バッファーの領域を割り当てる #allocate <i>allocation</i>によって作成できます。

コンテンツ、または既存のバイト配列 {#if[char]?または& #wrap(byte[]) <i>wrapping</i> 32;string} をバッファーに格納します。

"direct"><h2> Direct バッファーと 非ダイレクト バッファー </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>

<li>

ビュー バッファーは、バイトではなく、その値の型固有のサイズの観点からインデックスが作成されます。

</li>

<li>

ビュー バッファーは、バッファーと配列または同じ型の他のバッファーの間で連続した値シーケンスを転送できる相対一括 取得 メソッドと put メソッドを提供します。および

</li>

<li>

ビュー バッファーは、バッキング バイト バッファーが直接の場合にのみダイレクトになるため、はるかに効率的になる可能性があります。

</li>

</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ドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
ByteBuffer(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

名前 説明
Char

現在位置の char を返し、位置を 2 ずつ増やします。

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Double

現在位置の double を返し、位置を 8 ずつ増やします。

Float

現在位置の float を返し、位置を 4 ずつ増やします。

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
HasArray

このバッファーがアクセス可能なバイト配列によってサポートされているかどうかを示します。

HasRemaining

現在の位置と制限の間に要素があるかどうかを示します。

(継承元 Buffer)
Int

現在位置の int を返し、位置を 4 ずつ増やします。

IsDirect

直接バッファーの場合は true を返します。

(継承元 Buffer)
IsReadOnly

このバッファーが読み取り専用かどうかを示します。

(継承元 Buffer)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

バイト バッファー。

(継承元 JavaObject)
JniPeerMembers

バイト バッファー。

Long

現在位置の long を返し、位置を 8 ずつ増やします。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
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)

このバッファーを別のバッファーと比較します。

Construct(JniObjectReference, JniObjectReferenceOptions)

バイト バッファー。

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

バイト バッファー。

(継承元 JavaObject)
Duplicate()

このバッファーのコンテンツを共有する新しいバイト バッファーを作成します。

Equals(Object)

バイト バッファー。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
Flip()

このバッファーを反転します。

(継承元 Buffer)
Get()

相対 get メソッド。

Get(Byte[], Int32, Int32)

相対一括 取得 メソッド。

Get(Byte[])

相対一括 取得 メソッド。

Get(Int32, Byte[], Int32, Int32)

絶対一括 取得 メソッド。

Get(Int32, Byte[])

絶対一括 取得 メソッド。

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[], Int32, Int32)

相対一括 配置 メソッド  (省略可能な操作)

Put(Byte[])

相対一括 配置 メソッド  (省略可能な操作)

Put(ByteBuffer)

相対一括 配置 メソッド  (省略可能な操作)

Put(Int32, Byte[], Int32, Int32)

絶対一括 配置 方法  (省略可能な操作)

Put(Int32, Byte[])

絶対一括 配置 方法  (省略可能な操作)

Put(Int32, ByteBuffer, Int32, Int32)

絶対一括 配置 方法  (省略可能な操作)

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, Int32)

int 値を書き込むための絶対 put メソッド  (省略可能な操作)

PutInt(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)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

バイト バッファー。

(継承元 JavaObject)
Slice()

コンテンツがこのバッファーのコンテンツの共有サブシーケンスである新しいバイト バッファーを作成します。

Slice(Int32, Int32)

コンテンツがこのバッファーのコンテンツの共有サブシーケンスである新しいバイト バッファーを作成します。

ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wrap(Byte[], Int32, Int32)

バイト配列をバッファーにラップします。

Wrap(Byte[])

バイト配列をバッファーにラップします。

明示的なインターフェイスの実装

名前 説明
IComparable.CompareTo(Object)

バイト バッファー。

IJavaPeerable.Disposed()

バイト バッファー。

(継承元 JavaObject)
IJavaPeerable.Finalized()

バイト バッファー。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

バイト バッファー。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

バイト バッファー。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

バイト バッファー。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

バイト バッファー。

(継承元 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

バイト バッファー。

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

バイト バッファー。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象