Bagikan melalui


ByteBuffer Kelas

Definisi

Buffer byte.

[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
Warisan
ByteBuffer
Turunan
Atribut
Penerapan

Keterangan

Buffer byte.

Kelas ini mendefinisikan enam kategori operasi pada buffer byte:

<Ul>

<Li>

Absolut dan relatif #get() <i>get</i> serta #put(byte) <i>put</i> metode yang membaca dan menulis byte tunggal;

</Li>

<Li>

Metode relatif #get(byte[]) <i>bulk get</i> yang mentransfer urutan byte yang berdekatan dari buffer ini ke dalam array;

</Li>

<Li>

Metode relatif #put(byte[]) <i>bulk put</i> yang mentransfer urutan byte yang berdekatan dari array byte atau beberapa buffer byte lainnya ke dalam buffer ini;

</Li>

<Li>

Absolut dan relatif #getChar() <i>get</i> dan #putChar(char) <i>put</i> metode yang membaca dan menulis nilai dari jenis primitif lainnya, menerjemahkannya ke dan dari urutan byte dalam urutan byte tertentu;

</Li>

<Li>

Metode untuk membuat buffer tampilan, yang memungkinkan buffer byte untuk dilihat sebagai buffer yang berisi nilai dari beberapa jenis primitif lainnya; dan

</Li>

<Li>

Metode untuk #compact compacting, #duplicate duplicating, dan #slice slicing buffer byte.

</Li>

</Ul>

Buffer byte dapat dibuat baik dengan #allocate <i>allocation</i>, yang mengalokasikan ruang untuk buffer

konten, atau dengan #wrap(byte[]) <i>wrapping</i> array byte yang ada ke dalam buffer.

"direct"><h2> Direct vs. buffer <non-direct /h2>

Buffer byte adalah langsung atau non-langsung. Mengingat buffer byte langsung, komputer virtual Java akan melakukan upaya terbaik untuk melakukan operasi I/O asli langsung di atasnya. Artinya, ini akan mencoba untuk menghindari penyalinan konten buffer ke (atau dari) buffer perantara sebelum (atau sesudah) setiap pemanggilan salah satu operasi I/O asli sistem operasi yang mendasarinya.

Buffer byte langsung dapat dibuat dengan memanggil #allocateDirect(int) allocateDirect metode pabrik kelas ini. Buffer yang dikembalikan oleh metode ini biasanya memiliki biaya alokasi dan pembatalan alokasi yang agak lebih tinggi daripada buffer non-langsung. Isi buffer langsung dapat berada di luar tumpukan normal yang dikumpulkan sampah, sehingga dampaknya terhadap jejak memori aplikasi mungkin tidak jelas. Oleh karena itu disarankan agar buffer langsung dialokasikan terutama untuk buffer besar berumur panjang yang tunduk pada operasi I/O asli sistem yang mendasar. Secara umum yang terbaik adalah mengalokasikan buffer langsung hanya ketika mereka menghasilkan keuntungan yang dapat diukur dalam performa program.

Buffer byte langsung juga dapat dibuat oleh java.nio.channels.FileChannel#map mapping wilayah file langsung ke dalam memori. Implementasi platform Java dapat secara opsional mendukung pembuatan buffer byte langsung dari kode asli melalui JNI. Jika instans salah satu buffer semacam ini mengacu pada wilayah memori yang tidak dapat diakses, maka upaya untuk mengakses wilayah tersebut tidak akan mengubah konten buffer dan akan menyebabkan pengecualian yang tidak ditentukan dilemparkan baik pada saat akses atau di lain waktu.

Apakah buffer byte langsung atau non-langsung dapat ditentukan dengan memanggil metodenya #isDirect isDirect . Metode ini disediakan sehingga manajemen buffer eksplisit dapat dilakukan dalam kode kritis performa.

"bin"><h2> Access ke data <biner /h2>

Kelas ini mendefinisikan metode untuk membaca dan menulis nilai dari semua jenis primitif lainnya, kecuali boolean. Nilai primitif diterjemahkan ke (atau dari) urutan byte sesuai dengan urutan byte buffer saat ini, yang dapat diambil dan dimodifikasi melalui #order order metode . Pesanan byte tertentu diwakili oleh instans ByteOrder kelas. Urutan awal buffer byte selalu ByteOrder#BIG_ENDIAN BIG_ENDIAN.

Untuk akses ke data biner heterogen, yaitu, urutan nilai dari berbagai jenis, kelas ini mendefinisikan keluarga metode get dan put absolut dan relatif untuk setiap jenis. Untuk nilai floating-point 32-bit, misalnya, kelas ini mendefinisikan:

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

Metode yang sesuai didefinisikan untuk jenis char, , short, longint, dan double. Parameter indeks metode get dan put absolut berada dalam hal byte daripada jenis yang dibaca atau ditulis.

"tampilan">

Untuk akses ke data biner homogen, yaitu, urutan nilai dengan jenis yang sama, kelas ini menentukan metode yang dapat membuat tampilan buffer byte tertentu. Buffer tampilan hanyalah buffer lain yang kontennya didukung oleh buffer byte. Perubahan pada konten buffer byte akan terlihat di buffer tampilan, dan sebaliknya; posisi dua buffer, batas, dan nilai tanda independen. Metode ini #asFloatBuffer() asFloatBuffer , misalnya, membuat instans FloatBuffer kelas yang didukung oleh buffer byte tempat metode dipanggil. Metode pembuatan tampilan yang sesuai didefinisikan untuk jenis char, , short, intlong, dan double.

Buffer tampilan memiliki tiga keuntungan penting daripada keluarga metode get dan put khusus jenis yang dijelaskan di atas:

<Ul>

<Li>

Buffer tampilan diindeks bukan dalam hal byte melainkan dalam hal ukuran spesifik jenis nilainya;

</Li>

<Li>

Buffer tampilan menyediakan metode get dan put massal relatif yang dapat mentransfer urutan nilai yang berdekatan antara buffer dan array atau beberapa buffer lain dengan jenis yang sama; dan

</Li>

<Li>

Buffer tampilan berpotensi jauh lebih efisien karena akan langsung jika, dan hanya jika, buffer byte cadangannya langsung.

</Li>

</Ul>

Urutan byte buffer tampilan diperbaiki menjadi buffer byte-nya pada saat tampilan dibuat.

<h2> Penautan pemanggilan </h2>

Metode di kelas ini yang tidak memiliki nilai untuk dikembalikan ditentukan untuk mengembalikan buffer tempat mereka dipanggil. Ini memungkinkan pemanggilan metode untuk ditautkan.

Urutan pernyataan

<blockquote>

bb.putInt(0xCAFEBABE);
            bb.putShort(3);
            bb.putShort(45);

</blockquote>

dapat, misalnya, digantikan oleh pernyataan tunggal

<blockquote>

bb.putInt(0xCAFEBABE).putShort(3).putShort(45);

</blockquote>

Ditambahkan dalam 1.4.

Dokumentasi Java untuk java.nio.ByteBuffer.

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Konstruktor

ByteBuffer(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

Properti

Char

Mengembalikan karakter pada posisi saat ini dan meningkatkan posisi sebesar 2.

Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Double

Mengembalikan ganda pada posisi saat ini dan meningkatkan posisi sebesar 8.

Float

Mengembalikan float pada posisi saat ini dan meningkatkan posisi sebesar 4.

Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
HasArray

Memberi tahu apakah buffer ini didukung oleh array byte yang dapat diakses atau tidak.

HasRemaining

Memberi tahu apakah ada elemen antara posisi saat ini dan batasnya.

(Diperoleh dari Buffer)
Int

Mengembalikan int pada posisi saat ini dan meningkatkan posisi sebesar 4.

IsDirect

Mengembalikan true jika ini adalah buffer langsung.

(Diperoleh dari Buffer)
IsReadOnly

Menunjukkan apakah buffer ini bersifat baca-saja.

(Diperoleh dari Buffer)
JniIdentityHashCode

Buffer byte.

(Diperoleh dari Object)
JniPeerMembers

Buffer byte.

Long

Mengembalikan panjang pada posisi saat ini dan meningkatkan posisi sebesar 8.

PeerReference

Buffer byte.

(Diperoleh dari Object)
Short

Mengembalikan pendek pada posisi saat ini dan meningkatkan posisi sebesar 2.

ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Metode

AlignedSlice(Int32)

Membuat buffer byte baru yang isinya adalah konten bersama dan selaras dari konten buffer ini.

AlignmentOffset(Int32, Int32)

Mengembalikan alamat memori, menunjuk ke byte pada indeks tertentu, modulus ukuran unit yang diberikan.

Allocate(Int32)

Mengalokasikan buffer byte baru.

AllocateDirect(Int32)

Mengalokasikan buffer byte langsung baru.

ArrayOffset()

Mengembalikan offset dalam array backing buffer ini dari elemen pertama buffer   (operasi opsional).

AsCharBuffer()

Membuat tampilan buffer byte ini sebagai buffer karakter.

AsDoubleBuffer()

Membuat tampilan buffer byte ini sebagai buffer ganda.

AsFloatBuffer()

Membuat tampilan buffer byte ini sebagai buffer float.

AsIntBuffer()

Membuat tampilan buffer byte ini sebagai buffer int.

AsLongBuffer()

Membuat tampilan buffer byte ini sebagai buffer panjang.

AsReadOnlyBuffer()

Membuat buffer byte baca-saja baru yang berbagi konten buffer ini.

AsShortBuffer()

Membuat tampilan buffer byte ini sebagai buffer pendek.

Capacity()

Mengembalikan kapasitas buffer ini.

(Diperoleh dari Buffer)
Clear()

Bersihkan buffer ini.

(Diperoleh dari Buffer)
Clone()

Membuat dan mengembalikan salinan objek ini.

(Diperoleh dari Object)
Compact()

Memampatkan buffer  ini;  (operasi opsional).

CompareTo(ByteBuffer)

Membandingkan buffer ini dengan buffer lainnya.

Dispose()

Buffer byte.

(Diperoleh dari Object)
Dispose(Boolean)

Buffer byte.

(Diperoleh dari Object)
Duplicate()

Membuat buffer byte baru yang berbagi konten buffer ini.

Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
Flip()

Balikkan buffer ini.

(Diperoleh dari Buffer)
Get()

Metode get relatif.

Get(Byte[])

Metode get massal relatif.

Get(Byte[], Int32, Int32)

Metode get massal relatif.

Get(Int32)

Metode get absolut.

GetChar(Int32)

Metode dapatkan absolut untuk membaca nilai karakter.

GetDirectBufferAddress()

Buffer byte.

(Diperoleh dari Buffer)
GetDouble(Int32)

Metode dapatkan absolut untuk membaca nilai ganda.

GetFloat(Int32)

Metode dapatkan absolut untuk membaca nilai float.

GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
GetInt(Int32)

Metode dapatkan absolut untuk membaca nilai int.

GetLong(Int32)

Metode dapatkan absolut untuk membaca nilai panjang.

GetShort(Int32)

Metode dapatkan absolut untuk membaca nilai pendek.

JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
Limit()

Mengembalikan batas buffer ini.

(Diperoleh dari Buffer)
Limit(Int32)

Mengatur batas buffer ini.

(Diperoleh dari Buffer)
Mark()

Mengatur tanda buffer ini pada posisinya.

(Diperoleh dari Buffer)
Mismatch(ByteBuffer)

Menemukan dan mengembalikan indeks relatif dari ketidakcocokan pertama antara buffer ini dan buffer tertentu.

Notify()

Membangunkan satu utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
NotifyAll()

Membangunkan semua utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
Order()

Mengambil urutan byte buffer ini.

Order(ByteOrder)

Memodifikasi urutan byte buffer ini.

Position()

Mengembalikan posisi buffer ini.

(Diperoleh dari Buffer)
Position(Int32)

Mengatur posisi buffer ini.

(Diperoleh dari Buffer)
Put(Byte[])

Metode   relatif diletakkan secara massal;  (operasi opsional).

Put(Byte[], Int32, Int32)

Metode   relatif diletakkan secara massal;  (operasi opsional).

Put(ByteBuffer)

Metode   relatif diletakkan secara massal;  (operasi opsional).

Put(Int32, SByte)

Mutlak menempatkan metode   (operasi opsional).

Put(SByte)

Metode put relatif   (operasi opsional).

PutChar(Char)

Metode taruh relatif untuk menulis nilai karakter   (operasi opsional).

PutChar(Int32, Char)

Metode put absolut untuk menulis nilai karakter   (operasi opsional).

PutDouble(Double)

Metode taruh relatif untuk menulis nilai ganda   (operasi opsional).

PutDouble(Int32, Double)

Metode put absolut untuk menulis nilai ganda   (operasi opsional).

PutFloat(Int32, Single)

Metode put absolut untuk menulis nilai float   (operasi opsional).

PutFloat(Single)

Metode taruh relatif untuk menulis nilai float   (operasi opsional).

PutInt(Int32)

Metode taruh relatif untuk menulis nilai int   (operasi opsional).

PutInt(Int32, Int32)

Metode put absolut untuk menulis nilai int   (operasi opsional).

PutLong(Int32, Int64)

Metode put absolut untuk menulis nilai panjang   (operasi opsional).

PutLong(Int64)

Metode taruh relatif untuk menulis nilai panjang   (operasi opsional).

PutShort(Int16)

Metode taruh relatif untuk menulis nilai pendek   (operasi opsional).

PutShort(Int32, Int16)

Metode put absolut untuk menulis nilai pendek   (operasi opsional).

Remaining()

Mengembalikan jumlah elemen antara posisi saat ini dan batas.

(Diperoleh dari Buffer)
Reset()

Mereset posisi buffer ini ke posisi yang ditandai sebelumnya.

(Diperoleh dari Buffer)
Rewind()

Memundurkan buffer ini.

(Diperoleh dari Buffer)
SetHandle(IntPtr, JniHandleOwnership)

Handle Mengatur properti.

(Diperoleh dari Object)
Slice()

Membuat buffer byte baru yang kontennya merupakan bagian bersama dari konten buffer ini.

Slice(Int32, Int32)

Membuat buffer byte baru yang kontennya merupakan bagian bersama dari konten buffer ini.

Slice(Int32, Int32)

Membuat buffer baru yang isinya adalah subsekuen bersama dari konten buffer ini.

(Diperoleh dari Buffer)
ToArray<T>()

Buffer byte.

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Buffer byte.

(Diperoleh dari Object)
Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)
Wrap(Byte[])

Membungkus array byte ke dalam buffer.

Wrap(Byte[], Int32, Int32)

Membungkus array byte ke dalam buffer.

Implementasi Antarmuka Eksplisit

IComparable.CompareTo(Object)

Buffer byte.

IJavaPeerable.Disposed()

Buffer byte.

(Diperoleh dari Object)
IJavaPeerable.DisposeUnlessReferenced()

Buffer byte.

(Diperoleh dari Object)
IJavaPeerable.Finalized()

Buffer byte.

(Diperoleh dari Object)
IJavaPeerable.JniManagedPeerState

Buffer byte.

(Diperoleh dari Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Buffer byte.

(Diperoleh dari Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Buffer byte.

(Diperoleh dari Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Buffer byte.

(Diperoleh dari Object)

Metode Ekstensi

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android.

JavaCast<TResult>(IJavaObject)

Buffer byte.

GetJniTypeName(IJavaPeerable)

Buffer byte.

Berlaku untuk