ByteBuffer クラス

定義

バイト バッファー。

[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
継承
ByteBuffer
派生
属性
実装

注釈

バイト バッファー。

このクラスは、バイト バッファーに対する 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 非ダイレクト バッファー </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>

、、および doubleintcharshortlongに対応するメソッドが定義されています。 絶対 get メソッドと put メソッドのインデックス パラメーターは、読み取りまたは書き込まれる型ではなくバイト単位です。

"views">

同種のバイナリ データ (つまり、同じ型の値のシーケンス) にアクセスするために、このクラスは、特定のバイト バッファーの ビュー を作成できるメソッドを定義します。 ビュー バッファーは、コンテンツがバイト バッファーによってサポートされる単なる別のバッファーです。 バイト バッファーの内容に対する変更はビュー バッファーに表示され、その逆も同様です。2 つのバッファーの位置、制限、およびマークの値は独立しています。 たとえば、 メソッドは #asFloatBuffer() asFloatBuffer 、 メソッドが FloatBuffer 呼び出されるバイト バッファーによってサポートされる クラスのインスタンスを作成します。 、、 の各型charlongshortintdoubleに対応するビュー作成メソッドが定義されています。

ビュー バッファーには、上記の型固有の 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

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

コンストラクター

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

バイト バッファー。

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

このバッファーを nbsp; &圧縮します。(省略可能な操作)

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 メソッド  (省略可能な操作)

Put(Byte[], Int32, Int32)

相対バルク put メソッド  (省略可能な操作)

Put(ByteBuffer)

相対バルク put メソッド  (省略可能な操作)

Put(Int32, SByte)

絶対 put メソッド  (省略可能な操作)

Put(SByte)

相対 put メソッド  (省略可能な操作)

PutChar(Char)

nbsp;  の char 値&書き込む相対 put メソッド。(省略可能な操作)

PutChar(Int32, Char)

nbsp;  の char 値&を書き込む場合の絶対 put メソッド。(省略可能な操作)

PutDouble(Double)

nbsp;  の二重値&書き込む相対 put メソッド。(省略可能な操作)

PutDouble(Int32, Double)

nbsp;  の二重値&書き込む絶対 put メソッド。(省略可能な操作)

PutFloat(Int32, Single)

nbsp;  の float 値&書き込む絶対 put メソッド。(省略可能な操作)

PutFloat(Single)

nbsp;  の float 値&書き込む相対 put メソッド。(省略可能な操作)

PutInt(Int32)

nbsp;  の int 値&書き込む相対 put メソッド。(省略可能な操作)

PutInt(Int32, Int32)

nbsp;  の int 値&書き込む絶対 put メソッド。(省略可能な操作)

PutLong(Int32, Int64)

nbsp;  の長い値&書き込むための絶対 put メソッド。(省略可能な操作)

PutLong(Int64)

nbsp; &長い値を書き込むための相対 put メソッド。(省略可能な操作)

PutShort(Int16)

nbsp;  の短い値&書き込む相対 put メソッド。(省略可能な操作)

PutShort(Int32, Int16)

nbsp;  の短い値&書き込む絶対 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)

バイト バッファー。

適用対象