Share via


Buffer Classe

Definizione

Contenitore per i dati di un tipo primitivo specifico.

[Android.Runtime.Register("java/nio/Buffer", DoNotGenerateAcw=true)]
public abstract class Buffer : Java.Lang.Object
[<Android.Runtime.Register("java/nio/Buffer", DoNotGenerateAcw=true)>]
type Buffer = class
    inherit Object
Ereditarietà
Buffer
Derivato
Attributi

Commenti

Contenitore per i dati di un tipo primitivo specifico.

Un buffer è una sequenza lineare e finita di elementi di un tipo primitivo specifico. Oltre al contenuto, le proprietà essenziali di un buffer sono la capacità, il limite e la posizione:

<Blockquote>

La capacità di un buffer è il numero di elementi che contiene. La capacità di un buffer non è mai negativa e non cambia mai.

Il limite di un buffer è l'indice del primo elemento che non deve essere letto o scritto. Il limite di un buffer non è mai negativo e non è mai maggiore della capacità.

La posizione di un buffer è l'indice dell'elemento successivo da leggere o scrivere. La posizione di un buffer non è mai negativa e non è mai maggiore del limite.

</Blockquote>

È presente una sottoclasse di questa classe per ogni tipo primitivo non booleano.

<h2 Trasferimento di dati </h2>>

Ogni sottoclasse di questa classe definisce due categorie di operazioni get e put :

<Blockquote>

Operazioni relative in lettura o scrittura di uno o più elementi a partire dalla posizione corrente e quindi aumentare la posizione in base al numero di elementi trasferiti. Se il trasferimento richiesto supera il limite, un'operazione di recupero relativa genera un'operazione BufferUnderflowException e un'operazione di put relativa genera un BufferOverflowExceptionoggetto ; in entrambi i casi, nessun dato viene trasferito.

Le operazioni assolute accettano un indice di elemento esplicito e non influiscono sulla posizione. Le operazioni get e put assoluto generano un valore IndexOutOfBoundsException se l'argomento indice supera il limite.

</Blockquote>

I dati possono anche essere trasferiti in o fuori da un buffer dalle operazioni di I/O di un canale appropriato, che sono sempre relative alla posizione corrente.

<h2 Contrassegno e reimpostazione </h2>>

Il contrassegno di un buffer è l'indice a cui verrà reimpostata la posizione quando viene richiamato il #reset reset metodo. Il segno non è sempre definito, ma quando viene definito non è mai negativo e non è mai maggiore della posizione. Se il contrassegno viene definito, viene rimosso quando la posizione o il limite viene modificato in un valore minore del contrassegno. Se il contrassegno non è definito, richiamando il #reset reset metodo viene generato un InvalidMarkException oggetto.

<h2 Invariants </h2>>

L'invariante seguente contiene i valori di contrassegno, posizione, limite e capacità:

<blockquote>0&lt;=mark&lt;=&lt;= positionlimit&lt;=capacity</blockquote>

Un buffer appena creato ha sempre una posizione pari a zero e un contrassegno non definito. Il limite iniziale può essere zero oppure può essere un altro valore che dipende dal tipo del buffer e dal modo in cui viene costruito. Ogni elemento di un buffer appena allocato viene inizializzato su zero.

<h2> Cancella, capovolgimento e riavvolgimento </h2>

Oltre ai metodi per accedere ai valori di posizione, limite e capacità e per contrassegnare e reimpostare, questa classe definisce anche le operazioni seguenti sui buffer:

<ul>

<li>

#clear rende pronto un buffer per una nuova sequenza di operazioni di lettura canale o di put relative: imposta il limite alla capacità e la posizione su zero.

</li>

<li>

#flip rende pronto un buffer per una nuova sequenza di operazioni get di scrittura canale o relative: imposta il limite sulla posizione corrente e quindi imposta la posizione su zero.

</li>

<li>

#rewind rende un buffer pronto per la rilettura dei dati già contenuti: lascia invariato il limite e imposta la posizione su zero.

</li>

</ul>

<buffer <di sola lettura /h2>>

Ogni buffer è leggibile, ma non ogni buffer è scrivibile. I metodi di mutazione di ogni classe buffer vengono specificati come operazioni facoltative che generano un ReadOnlyBufferException valore quando viene richiamato su un buffer di sola lettura. Un buffer di sola lettura non consente la modifica del contenuto, ma i relativi valori di contrassegno, posizione e limite sono modificabili. Se un buffer è di sola lettura può essere determinato richiamando il #isReadOnly isReadOnly relativo metodo.

<h2 Thread safety </h2>>

I buffer non sono sicuri per l'uso da parte di più thread simultanei. Se un buffer deve essere usato da più thread, l'accesso al buffer deve essere controllato dalla sincronizzazione appropriata.

<h2 Concatenamento <chiamate /h2>>

I metodi in questa classe che non hanno altrimenti un valore da restituire vengono specificati per restituire il buffer in base al quale vengono richiamati. Ciò consente di concatenare le chiamate al metodo; ad esempio, la sequenza di istruzioni

<Blockquote>

b.flip();
            b.position(23);
            b.limit(42);

</Blockquote>

può essere sostituito dalla singola istruzione più compatta

<Blockquote>

b.flip().position(23).limit(42);

</Blockquote>

Aggiunta nella versione 1.4.

Documentazione Java per java.nio.Buffer.

Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .

Costruttori

Buffer(IntPtr, JniHandleOwnership)

Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle all'istanza di Android sottostante.

(Ereditato da Object)
HasArray

Restituisce true se array e arrayOffset non verrà generata.

HasRemaining

Indica se sono presenti elementi tra la posizione corrente e il limite.

IsDirect

Restituisce true se si tratta di un buffer diretto.

IsReadOnly

Indica se questo buffer è di sola lettura.

JniIdentityHashCode

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
JniPeerMembers

Contenitore per i dati di un tipo primitivo specifico.

PeerReference

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
ThresholdClass

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

ThresholdType

Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice.

Metodi

ArrayOffset()

Restituisce l'offset all'interno della matrice di backup del buffer del primo elemento del buffer   (operazione facoltativa).

Capacity()

Restituisce la capacità del buffer.

Clear()

Cancella questo buffer.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Dispose()

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
Dispose(Boolean)

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
Duplicate()

Crea un nuovo buffer che condivide il contenuto del buffer.

Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
Flip()

Capovolge questo buffer.

GetDirectBufferAddress()

Contenitore per i dati di un tipo primitivo specifico.

GetHashCode()

Restituisce un valore del codice hash per l'oggetto.

(Ereditato da Object)
JavaFinalize()

Chiamato dal Garbage Collector in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto.

(Ereditato da Object)
Limit()

Restituisce il limite del buffer.

Limit(Int32)

Imposta il limite del buffer.

Mark()

Imposta il contrassegno del buffer nella relativa posizione.

Notify()

Riattiva un singolo thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitoraggio dell'oggetto.

(Ereditato da Object)
Position()

Restituisce la posizione del buffer.

Position(Int32)

Imposta la posizione del buffer.

Remaining()

Restituisce il numero di elementi tra la posizione corrente e il limite.

Reset()

Reimposta la posizione del buffer nella posizione contrassegnata in precedenza.

Rewind()

Riavvolge questo buffer.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
Slice()

Crea un nuovo buffer il cui contenuto è una sottosequenza condivisa del contenuto del buffer.

Slice(Int32, Int32)

Crea un nuovo buffer il cui contenuto è una sottosequenza condivisa del contenuto del buffer.

ToArray<T>()

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione in formato stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
Wait()

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.<

(Ereditato da Object)
Wait(Int64)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64, Int32)

Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IJavaPeerable.Disposed()

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
IJavaPeerable.Finalized()

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Contenitore per i dati di un tipo primitivo specifico.

(Ereditato da Object)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione dei tipi controllati dal runtime Android.

JavaCast<TResult>(IJavaObject)

Contenitore per i dati di un tipo primitivo specifico.

GetJniTypeName(IJavaPeerable)

Contenitore per i dati di un tipo primitivo specifico.

Si applica a