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 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>

対応するメソッドは、型charshortintlongおよび double. 絶対 get メソッドと put メソッドのインデックス パラメーターは、読み取りまたは書き込み中の型ではなくバイト単位です。

"views">

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

この 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()

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

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)

バイト バッファー。

適用対象