Partager via


ByteBuffer Classe

Définition

Mémoire tampon d’octets.

[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
Héritage
ByteBuffer
Dérivé
Attributs
Implémente

Remarques

Mémoire tampon d’octets.

Cette classe définit six catégories d’opérations sur les mémoires tampons d’octets :

<ul>

<Li>

Absolu et relatif #get() <i>get</i> et #put(byte) <i>put</i> méthodes qui lisent et écrivent des octets uniques ;

</Li>

<Li>

Méthodes relatives #get(byte[]) <i>bulk get</i> qui transfèrent des séquences contiguës d’octets de cette mémoire tampon dans un tableau ;

</Li>

<Li>

Méthodes relatives #put(byte[]) <i>bulk put</i> qui transfèrent des séquences contiguës d’octets à partir d’un tableau d’octets ou d’une autre mémoire tampon d’octets dans cette mémoire tampon ;

</Li>

<Li>

Méthodes absolues et relatives #getChar() <i>get</i>#putChar(char) <i>put</i> qui lisent et écrivent des valeurs d’autres types primitifs, en les traduisant vers et à partir de séquences d’octets dans un ordre d’octet particulier ;

</Li>

<Li>

Méthodes de création de mémoires tampons d’affichage, qui permettent à une mémoire tampon d’octet d’être vue en tant que mémoire tampon contenant des valeurs d’un autre type primitif ; et

</Li>

<Li>

Méthodes pour #compact compacting, #duplicate duplicatinget #slice slicing une mémoire tampon d’octets.

</Li>

</ul>

Les mémoires tampons d’octets peuvent être créées soit par #allocate <i>allocation</i>, ce qui alloue de l’espace pour les mémoires tampons

contenu, ou par #wrap(byte[]) <i>wrapping</i> un tableau d’octets existant dans une mémoire tampon.

« direct"><h2> Direct vs. mémoires tampons non directes </h2>

Une mémoire tampon d’octets est directe ou non directe. Étant donné une mémoire tampon d’octets directe, la machine virtuelle Java fera le meilleur effort pour effectuer des opérations d’E/S natives directement sur celle-ci. Autrement dit, il tentera d’éviter de copier le contenu de la mémoire tampon vers (ou à partir) d’une mémoire tampon intermédiaire avant (ou après) chaque appel d’une des opérations d’E/S natives du système d’exploitation sous-jacent.

Une mémoire tampon d’octets directe peut être créée en appelant la #allocateDirect(int) allocateDirect méthode de fabrique de cette classe. Les mémoires tampons retournées par cette méthode ont généralement des coûts d’allocation et de désallocation un peu plus élevés que les mémoires tampons non directes. Le contenu des mémoires tampons directes peut résider en dehors du tas collecté par le garbage-collected normal, et leur impact sur l’empreinte mémoire d’une application peut ne pas être évident. Il est donc recommandé d’allouer des mémoires tampons directes principalement pour les mémoires tampons volumineuses et de longue durée soumises aux opérations d’E/S natives du système sous-jacent. En général, il est préférable d’allouer des mémoires tampons directes uniquement lorsqu’elles produisent un gain mesurable dans les performances du programme.

Une mémoire tampon d’octets directes peut également être créée par java.nio.channels.FileChannel#map mapping une région d’un fichier directement en mémoire. Une implémentation de la plateforme Java peut éventuellement prendre en charge la création de tampons d’octets directs à partir du code natif via JNI. Si une instance de l’un de ces types de mémoires tampons fait référence à une région inaccessible de mémoire, une tentative d’accès à cette région ne modifie pas le contenu de la mémoire tampon et entraîne la levée d’une exception non spécifiée au moment de l’accès ou ultérieurement.

Si une mémoire tampon d’octets est directe ou non directe peut être déterminée en appelant sa #isDirect isDirect méthode. Cette méthode est fournie afin que la gestion explicite des mémoires tampons puisse être effectuée dans du code critique pour les performances.

« bin"><h2> Accès aux données binaires </h2>

Cette classe définit des méthodes pour lire et écrire des valeurs de tous les autres types primitifs, à l’exception booleande . Les valeurs primitives sont traduites en séquences (ou à partir) d’octets en fonction de l’ordre d’octet actuel de la mémoire tampon, qui peut être récupéré et modifié via les #order order méthodes. Les ordres d’octet spécifiques sont représentés par des instances de la ByteOrder classe. L’ordre initial d’une mémoire tampon d’octets est toujours ByteOrder#BIG_ENDIAN BIG_ENDIAN.

Pour accéder à des données binaires hétérogènes, c’est-à-dire des séquences de valeurs de différents types, cette classe définit une famille de méthodes absolues et relatives get et put pour chaque type. Pour les valeurs à virgule flottante 32 bits, par exemple, cette classe définit :

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

Les méthodes correspondantes sont définies pour les types char, , shortint, longet double. Les paramètres d’index des méthodes get et put absolues sont en termes d’octets plutôt que du type en cours de lecture ou d’écriture.

« views »>

Pour accéder aux données binaires homogènes, autrement dit, les séquences de valeurs du même type, cette classe définit des méthodes qui peuvent créer des vues d’une mémoire tampon d’octets donnée. Une mémoire tampon d’affichage est simplement une autre mémoire tampon dont le contenu est sauvegardé par la mémoire tampon d’octets. Les modifications apportées au contenu de la mémoire tampon d’octets sont visibles dans la mémoire tampon d’affichage, et inversement ; la position, la limite et les valeurs de marque des deux mémoires tampons sont indépendantes. La #asFloatBuffer() asFloatBuffer méthode, par exemple, crée une instance de la FloatBuffer classe sauvegardée par la mémoire tampon d’octets sur laquelle la méthode est appelée. Les méthodes de création d’affichage correspondantes sont définies pour les types char, , shortint, longet double.

Les mémoires tampons d’affichage présentent trois avantages importants sur les familles de méthodes get et put spécifiques au type décrites ci-dessus :

<ul>

<Li>

Une mémoire tampon d’affichage n’est pas indexée en termes d’octets, mais plutôt en termes de taille spécifique au type de ses valeurs ;

</Li>

<Li>

Une mémoire tampon d’affichage fournit des méthodes d’obtention et de mise en bloc relatives qui peuvent transférer des séquences de valeurs contiguës entre une mémoire tampon et un tableau ou une autre mémoire tampon du même type ; et

</Li>

<Li>

Une mémoire tampon d’affichage est potentiellement beaucoup plus efficace, car elle sera directe si, et seulement si, sa mémoire tampon d’octet de stockage est directe.

</Li>

</ul>

L’ordre d’octet d’une mémoire tampon d’affichage est fixe pour être celui de sa mémoire tampon d’octets au moment où la vue est créée.

<chaînage <d’appel h2> /h2>

Les méthodes de cette classe qui n’ont pas autrement de valeur à retourner sont spécifiées pour retourner la mémoire tampon sur laquelle elles sont appelées. Cela permet aux appels de méthode d’être chaînés.

Séquence d’instructions

<blockquote>

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

</blockquote>

peut, par exemple, être remplacé par l’instruction unique

<blockquote>

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

</blockquote>

Ajouté dans la version 1.4.

Documentation Java pour java.nio.ByteBuffer.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Constructeurs

ByteBuffer(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

Propriétés

Char

Retourne le char à la position actuelle et augmente la position de 2.

Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Double

Retourne le double à la position actuelle et augmente la position de 8.

Float

Retourne le float à la position actuelle et augmente la position de 4.

Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
HasArray

Indique si cette mémoire tampon est sauvegardée ou non par un tableau d’octets accessible.

HasRemaining

Indique s’il existe des éléments entre la position actuelle et la limite.

(Hérité de Buffer)
Int

Retourne l’int à la position actuelle et augmente la position de 4.

IsDirect

Retourne true s’il s’agit d’une mémoire tampon directe.

(Hérité de Buffer)
IsReadOnly

Indique si cette mémoire tampon est en lecture seule.

(Hérité de Buffer)
JniIdentityHashCode

Mémoire tampon d’octets.

(Hérité de Object)
JniPeerMembers

Mémoire tampon d’octets.

Long

Retourne la longueur à la position actuelle et augmente la position de 8.

PeerReference

Mémoire tampon d’octets.

(Hérité de Object)
Short

Retourne le court à la position actuelle et augmente la position de 2.

ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Méthodes

AlignedSlice(Int32)

Crée une mémoire tampon d’octets dont le contenu est une sous-séquence partagée et alignée du contenu de cette mémoire tampon.

AlignmentOffset(Int32, Int32)

Retourne l’adresse de mémoire, pointant vers l’octet à l’index donné, module la taille de l’unité donnée.

Allocate(Int32)

Alloue une nouvelle mémoire tampon d’octets.

AllocateDirect(Int32)

Alloue une nouvelle mémoire tampon d’octets directes.

ArrayOffset()

Retourne le décalage dans le tableau de stockage de cette mémoire tampon du premier élément de la mémoire tampon  ;   ;(opération facultative).

AsCharBuffer()

Crée une vue de cette mémoire tampon d’octets en tant que mémoire tampon de caractères.

AsDoubleBuffer()

Crée une vue de cette mémoire tampon d’octets en tant que double mémoire tampon.

AsFloatBuffer()

Crée une vue de cette mémoire tampon d’octets en tant que mémoire tampon flottante.

AsIntBuffer()

Crée une vue de cette mémoire tampon d’octets en tant que mémoire tampon int.

AsLongBuffer()

Crée une vue de cette mémoire tampon d’octets comme mémoire tampon longue.

AsReadOnlyBuffer()

Crée une mémoire tampon d’octets en lecture seule qui partage le contenu de cette mémoire tampon.

AsShortBuffer()

Crée une vue de cette mémoire tampon d’octets sous la forme d’une mémoire tampon courte.

Capacity()

Retourne la capacité de cette mémoire tampon.

(Hérité de Buffer)
Clear()

Efface cette mémoire tampon.

(Hérité de Buffer)
Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Compact()

Compacte cette mémoire tampon&e ;   ;(opération facultative).

CompareTo(ByteBuffer)

Compare cette mémoire tampon à une autre.

Dispose()

Mémoire tampon d’octets.

(Hérité de Object)
Dispose(Boolean)

Mémoire tampon d’octets.

(Hérité de Object)
Duplicate()

Crée une mémoire tampon d’octets qui partage le contenu de cette mémoire tampon.

Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
Flip()

Retourne cette mémoire tampon.

(Hérité de Buffer)
Get()

Méthode get relative.

Get(Byte[])

Méthode get en bloc relative.

Get(Byte[], Int32, Int32)

Méthode get en bloc relative.

Get(Int32)

Méthode get absolue.

GetChar(Int32)

Méthode get absolue pour la lecture d’une valeur char.

GetDirectBufferAddress()

Mémoire tampon d’octets.

(Hérité de Buffer)
GetDouble(Int32)

Méthode get absolue pour la lecture d’une valeur double.

GetFloat(Int32)

Méthode Get absolue pour lire une valeur float.

GetHashCode()

Retourne une valeur de code de hachage pour l'objet.

(Hérité de Object)
GetInt(Int32)

Méthode get absolue pour lire une valeur int.

GetLong(Int32)

Méthode get absolue pour lire une valeur longue.

GetShort(Int32)

Méthode get absolue pour lire une valeur courte.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Limit()

Retourne la limite de cette mémoire tampon.

(Hérité de Buffer)
Limit(Int32)

Définit la limite de cette mémoire tampon.

(Hérité de Buffer)
Mark()

Définit la marque de cette mémoire tampon à sa position.

(Hérité de Buffer)
Mismatch(ByteBuffer)

Recherche et retourne l’index relatif de la première incompatibilité entre cette mémoire tampon et une mémoire tampon donnée.

Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
Order()

Récupère l’ordre d’octet de cette mémoire tampon.

Order(ByteOrder)

Modifie l’ordre d’octet de cette mémoire tampon.

Position()

Retourne la position de cette mémoire tampon.

(Hérité de Buffer)
Position(Int32)

Définit la position de cette mémoire tampon.

(Hérité de Buffer)
Put(Byte[])

Méthode relative put put  ;   ;(opération facultative).

Put(Byte[], Int32, Int32)

Méthode relative put put  ;   ;(opération facultative).

Put(ByteBuffer)

Méthode relative put put  ;   ;(opération facultative).

Put(Int32, SByte)

Absolute put method  ;   ;(opération facultative).

Put(SByte)

Méthode put relative  ;   ;(opération facultative).

PutChar(Char)

Méthode put relative pour l’écriture d’une valeur char  ;   ;(opération facultative).

PutChar(Int32, Char)

Méthode put absolue pour l’écriture d’une valeur de char  ;   ;(opération facultative).

PutDouble(Double)

Méthode put relative pour l’écriture d’une valeur double  ;   ;(opération facultative).

PutDouble(Int32, Double)

Méthode put absolue pour écrire une valeur double  ;   ;(opération facultative).

PutFloat(Int32, Single)

Méthode put absolue pour écrire une valeur float  ;   ;(opération facultative).

PutFloat(Single)

Méthode put relative pour l’écriture d’une valeur float  ;   ;(opération facultative).

PutInt(Int32)

Méthode put relative pour écrire une valeur int  ;   ;(opération facultative).

PutInt(Int32, Int32)

Méthode put absolue pour écrire une valeur int  ;   ;(opération facultative).

PutLong(Int32, Int64)

Méthode put absolue pour écrire une valeur longue&e ;   ;(opération facultative).

PutLong(Int64)

Méthode put relative pour l’écriture d’une valeur longue&   ;(opération facultative).

PutShort(Int16)

Méthode relative put pour l’écriture d’une valeur courte&   ;(opération facultative).

PutShort(Int32, Int16)

Méthode put absolue pour l’écriture d’une valeur courte  ;   ;(opération facultative).

Remaining()

Retourne le nombre d’éléments entre la position actuelle et la limite.

(Hérité de Buffer)
Reset()

Réinitialise la position de cette mémoire tampon à la position précédemment marquée.

(Hérité de Buffer)
Rewind()

Rembobine cette mémoire tampon.

(Hérité de Buffer)
SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
Slice()

Crée une mémoire tampon d’octets dont le contenu est une sous-séquence partagée du contenu de cette mémoire tampon.

Slice(Int32, Int32)

Crée une mémoire tampon d’octets dont le contenu est une sous-séquence partagée du contenu de cette mémoire tampon.

Slice(Int32, Int32)

Crée une mémoire tampon dont le contenu est une sous-file d’attente partagée du contenu de cette mémoire tampon.

(Hérité de Buffer)
ToArray<T>()

Mémoire tampon d’octets.

(Hérité de Object)
ToString()

Retourne une représentation de chaîne de l'objet.

(Hérité de Object)
UnregisterFromRuntime()

Mémoire tampon d’octets.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wrap(Byte[])

Encapsule un tableau d’octets dans une mémoire tampon.

Wrap(Byte[], Int32, Int32)

Encapsule un tableau d’octets dans une mémoire tampon.

Implémentations d’interfaces explicites

IComparable.CompareTo(Object)

Mémoire tampon d’octets.

IJavaPeerable.Disposed()

Mémoire tampon d’octets.

(Hérité de Object)
IJavaPeerable.DisposeUnlessReferenced()

Mémoire tampon d’octets.

(Hérité de Object)
IJavaPeerable.Finalized()

Mémoire tampon d’octets.

(Hérité de Object)
IJavaPeerable.JniManagedPeerState

Mémoire tampon d’octets.

(Hérité de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Mémoire tampon d’octets.

(Hérité de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Mémoire tampon d’octets.

(Hérité de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Mémoire tampon d’octets.

(Hérité de Object)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Mémoire tampon d’octets.

GetJniTypeName(IJavaPeerable)

Mémoire tampon d’octets.

S’applique à