ByteDataBuffer

interface publique ByteDataBuffer

Un DataBuffer d'octets.

Méthodes publiques

résumé BooleanDataBuffer
asBooléens ()
Renvoie ce tampon d'octets sous forme de tampon de booléens.
résumé DoubleDataBuffer
commeDoubles ()
Renvoie ce tampon d'octets sous forme de tampon de doubles.
résumé FloatDataBuffer
commeFlotteurs ()
Renvoie ce tampon d'octets sous forme de tampon de flottants.
résumé IntDataBuffer
asInts ()
Renvoie ce tampon d'octets sous forme de tampon d'entiers.
résumé LongDataBuffer
aussiLongs ()
Renvoie ce tampon d'octets sous forme de tampon de longs.
résumé ShortDataBuffer
commeShorts ()
Renvoie ce tampon d'octets comme tampon de shorts.
résumé ByteDataBuffer
copyTo ( DataBuffer <Byte> dst, taille longue)
octet abstrait
getByte (index long)
Lit l'octet à l'index donné.
Octet abstrait
getObject (index long)
Lit la valeur à l'index donné.
résumé ByteDataBuffer
étroit (taille longue)
Crée un nouveau tampon dont le contenu est une sous-séquence partagée du contenu de ce tampon, dont la taille est définie sur la valeur donnée.
résumé ByteDataBuffer
décalage (index long)
Crée un nouveau tampon dont le contenu est une sous-séquence partagée du contenu de ce tampon, en commençant à l'index donné.
résumé ByteDataBuffer
lire (octet[] dst)
Méthode d'obtention en bloc, utilisant des tableaux d'octets.
résumé ByteDataBuffer
lire (octet[] dst, décalage int, longueur int)
Méthode d'obtention en bloc, utilisant des tableaux d'octets.
résumé ByteDataBuffer
setByte (valeur d'octet, index long)
Écrit l'octet donné dans ce tampon à l'index donné.
résumé ByteDataBuffer
setObject (valeur d'octet, index long)
résumé ByteDataBuffer
tranche (index long, taille longue)
Crée un nouveau tampon dont le contenu est une sous-séquence partagée du contenu de ce tampon, commençant à l'index donné et de la taille donnée.
abstrait DataBufferWindow < ByteDataBuffer >
fenêtre (taille longue)
Crée un DataBufferWindow qui fournit une vue partielle de ce tampon.
résumé ByteDataBuffer
écrire (octet[] src)
Méthode de put en masse, utilisant des tableaux d'octets.
résumé ByteDataBuffer
écrire (octet[] src, décalage int, longueur int)
Méthode de put en masse, utilisant des tableaux d'octets.

Méthodes héritées

Méthodes publiques

résumé public BooleanDataBuffer asBooleans ()

Renvoie ce tampon d'octets sous forme de tampon de booléens.

Le tampon renvoyé fournit une vue différente sur la même mémoire que le tampon d'octets d'origine, ce qui signifie que la modification d'une valeur dans l'un affectera l'autre.

Retours
Jetés
IllegalStateException si ce tampon ne peut pas être converti

résumé public DoubleDataBuffer asDoubles ()

Renvoie ce tampon d'octets sous forme de tampon de doubles.

Le tampon renvoyé fournit une vue différente sur la même mémoire que le tampon d'octets d'origine, ce qui signifie que la modification d'une valeur dans l'un affectera l'autre.

Retours
Jetés
IllegalStateException si ce tampon ne peut pas être converti

résumé public FloatDataBuffer asFloats ()

Renvoie ce tampon d'octets sous forme de tampon de flottants.

Le tampon renvoyé fournit une vue différente sur la même mémoire que le tampon d'octets d'origine, ce qui signifie que la modification d'une valeur dans l'un affectera l'autre.

Retours
Jetés
IllegalStateException si ce tampon ne peut pas être converti

résumé public IntDataBuffer asInts ()

Renvoie ce tampon d'octets sous forme de tampon d'entiers.

Le tampon renvoyé fournit une vue différente sur la même mémoire que le tampon d'octets d'origine, ce qui signifie que la modification d'une valeur dans l'un affectera l'autre.

Retours
Jetés
IllegalStateException si ce tampon ne peut pas être converti

résumé public LongDataBuffer asLongs ()

Renvoie ce tampon d'octets sous forme de tampon de longs.

Le tampon renvoyé fournit une vue différente sur la même mémoire que le tampon d'octets d'origine, ce qui signifie que la modification d'une valeur dans l'un affectera l'autre.

Retours
Jetés
IllegalStateException si ce tampon ne peut pas être converti

résumé public ShortDataBuffer asShorts ()

Renvoie ce tampon d'octets comme tampon de shorts.

Le tampon renvoyé fournit une vue différente sur la même mémoire que le tampon d'octets d'origine, ce qui signifie que la modification d'une valeur dans l'un affectera l'autre.

Retours
Jetés
IllegalStateException si ce tampon ne peut pas être converti

public abstract ByteDataBuffer copyTo ( DataBuffer <Byte> dst, taille longue)

octet abstrait public getByte (index long)

Lit l'octet à l'index donné.

Paramètres
indice l'index à partir duquel le float sera lu
Retours
  • l'octet à l'index donné
Jetés
IndexOutOfBoundsException si l'index est négatif ou non inférieur à la taille du tampon

public abstract Byte getObject (index long)

Lit la valeur à l'index donné. Important : L'utilisation de cette méthode doit être limitée aux tampons de types non primitifs ou lorsque le type de données n'est pas connu de manière déterministe par l'appelant. Dans tous les autres cas, préférez l'utilisation de sa variante primitive qui améliorera considérablement les performances (par exemple IntDataBuffer.getInt(idx)

Paramètres
indice l'index à partir duquel le float sera lu
Retours
  • la valeur à l'indice donné

résumé public ByteDataBuffer étroit (taille longue)

Crée un nouveau tampon dont le contenu est une sous-séquence partagée du contenu de ce tampon, dont la taille est définie sur la valeur donnée.

La nouvelle taille ne doit pas être supérieure à cette taille de tampon. Les modifications apportées au contenu de ce tampon seront visibles dans le nouveau tampon et vice versa. Le nouveau tampon sera en lecture seule si, et seulement si, ce tampon est en lecture seule.

Cet appel est équivalent à slice(0, size)

Paramètres
taille taille de ce nouveau tampon
Retours
  • le nouveau tampon

public abstract ByteDataBuffer offset (index long)

Crée un nouveau tampon dont le contenu est une sous-séquence partagée du contenu de ce tampon, en commençant à l'index donné.

L'index ne doit pas être supérieur à cette taille de tampon. Les modifications apportées au contenu de ce tampon seront visibles dans le nouveau tampon et vice versa. Le nouveau tampon sera en lecture seule si, et seulement si, ce tampon est en lecture seule.

Cet appel est équivalent à slice(index, size() - index)

Paramètres
indice l'index de la première valeur du nouveau tampon créé, ne doit pas être supérieur à size()
Retours
  • le nouveau tampon

lecture abstraite publique de ByteDataBuffer (byte[] dst)

Méthode d'obtention en bloc, utilisant des tableaux d'octets.

Cette méthode transfère les valeurs de ce tampon vers le tableau de destination donné. S'il y a moins de valeurs dans le tampon que nécessaire pour satisfaire la demande, c'est-à-dire si dst.length > size() , alors aucune valeur n'est transférée et une BufferUnderflowException est levée.

Sinon, cette méthode copie les valeurs n = dst.length de ce tampon dans le tableau donné.

Paramètres
heure d'été le tableau dans lequel les valeurs doivent être écrites
Retours
  • ce tampon
Jetés
BufferUnderflowException s'il n'y a pas assez de valeurs à copier depuis ce tampon

lecture abstraite publique de ByteDataBuffer (byte[] dst, int offset, int length)

Méthode d'obtention en bloc, utilisant des tableaux d'octets.

Cette méthode transfère les valeurs de ce tampon vers le tableau de destination donné. S'il y a moins de valeurs dans le tampon que nécessaire pour satisfaire la demande, c'est-à-dire si length > size() , alors aucune valeur n'est transférée et une BufferUnderflowException est levée.

Sinon, cette méthode copie les valeurs n = length de ce tampon dans le tableau donné en commençant au décalage donné.

Paramètres
heure d'été le tableau dans lequel les valeurs doivent être écrites
compenser le décalage dans le tableau de la première valeur à écrire ; doit être non négatif et ne pas dépasser dst.length
longueur le nombre maximum de valeurs à écrire dans le tableau donné ; doit être non négatif et ne pas dépasser dst.length - offset
Retours
  • ce tampon
Jetés
BufferUnderflowException s'il reste moins de valeurs de longueur dans ce tampon
IndexOutOfBoundsException si les conditions préalables sur les paramètres offset et longueur ne sont pas remplies

public abstract ByteDataBuffer setByte (valeur d'octet, index long)

Écrit l'octet donné dans ce tampon à l'index donné.

Paramètres
valeur l'octet à écrire
indice l'index auquel la valeur sera écrite
Retours
  • ce tampon
Jetés
IndexOutOfBoundsException si l'index est négatif ou non inférieur à la taille du tampon
ReadOnlyBufferException si ce tampon est en lecture seule

public abstract ByteDataBuffer setObject (valeur d'octet, index long)

tranche publique abstraite ByteDataBuffer (index long, taille longue)

Crée un nouveau tampon dont le contenu est une sous-séquence partagée du contenu de ce tampon, commençant à l'index donné et de la taille donnée.

L'index plus la nouvelle taille ne doivent pas être supérieurs à cette taille de tampon. Les modifications apportées au contenu de ce tampon seront visibles dans le nouveau tampon et vice versa. Le nouveau tampon sera en lecture seule si, et seulement si, ce tampon est en lecture seule.

Paramètres
indice index de la première valeur du nouveau buffer créé
taille la taille de ce nouveau tampon ne doit pas être supérieure à size()
Retours
  • le nouveau tampon

public abstract DataBufferWindow < ByteDataBuffer > fenêtre (taille longue)

Crée un DataBufferWindow qui fournit une vue partielle de ce tampon.

La fenêtre créée a une taille fixe et peut "slide" le long de ce tampon pour fournir différentes vues des données sans allouer une nouvelle instance de tampon, comme le fait offset(long) . Cela améliore les performances globales lorsque cette opération est répétée fréquemment. Par exemple:

IntDataBuffer bufferA = DataBuffers.ofInts(1024);
 // ... init buffer data
 IntDataBuffer bufferB = DataBuffers.ofInts(1, 2, 3, 4);

 // Return the index of the first occurrence of bufferB in bufferA using a sliding window
 DataBufferWindow<IntDataBuffer> windowA = bufferA.window(4);
 for (int i = 0; i < bufferA.size() - bufferB.size(); ++i) {
     if (windowA.slideTo(i).buffer().equals(bufferB)) {
         return i;
     
 }
 }

L'objet renvoyé est avec état et n'est pas thread-safe.

Paramètres
taille taille de la fenêtre
Retours
  • une nouvelle fenêtre qui commence à l'index 0 de ce buffer

résumé public ByteDataBuffer écriture (byte[] src)

Méthode de put en masse, utilisant des tableaux d'octets.

Cette méthode transfère les valeurs du tableau source donné dans ce tampon. S'il y a plus de valeurs dans le tableau source que dans ce tampon, c'est-à-dire si src.length > size() , alors aucune valeur n'est transférée et une BufferOverflowException est levée.

Sinon, cette méthode copie les valeurs n = src.length du tableau donné.

Paramètres
src le tableau source à partir duquel les valeurs doivent être lues
Retours
  • ce tampon
Jetés
BufferOverflowException s'il n'y a pas suffisamment d'espace dans ce tampon pour les valeurs du tableau source
ReadOnlyBufferException si ce tampon est en lecture seule

public abstract ByteDataBuffer write (byte[] src, int offset, int length)

Méthode de put en masse, utilisant des tableaux d'octets.

Cette méthode transfère les valeurs du tableau source donné dans ce tampon. S'il y a plus de valeurs dans le tableau source que dans ce tampon, c'est-à-dire si length > size() , alors aucune valeur n'est transférée et une BufferOverflowException est levée.

Sinon, cette méthode copie les valeurs n = length du tableau donné dans ce tampon, en commençant au décalage donné.

Paramètres
src le tableau source à partir duquel les valeurs doivent être lues
compenser le décalage dans le tableau de la première valeur à lire ; doit être non négatif et ne pas dépasser src.length
longueur le nombre de valeurs à lire dans le tableau donné ; doit être non négatif et ne pas dépasser src.length - offset
Retours
  • ce tampon
Jetés
BufferOverflowException s'il n'y a pas suffisamment d'espace dans ce tampon pour les valeurs du tableau source
IndexOutOfBoundsException si les conditions préalables sur les paramètres offset et longueur ne sont pas remplies
ReadOnlyBufferException si ce tampon est en lecture seule