Partager via


Pipe.SourceChannel.Read Méthode

Définition

Surcharges

Read(ByteBuffer)

Lit une séquence d’octets de ce canal dans la mémoire tampon donnée.

Read(ByteBuffer[])

Lit une séquence d’octets de ce canal dans les mémoires tampons données.

Read(ByteBuffer[], Int32, Int32)

Lit une séquence d’octets de ce canal dans une sous-séquence des mémoires tampons données.

Read(ByteBuffer)

Lit une séquence d’octets de ce canal dans la mémoire tampon donnée.

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler")]
public abstract int Read (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler")>]
abstract member Read : Java.Nio.ByteBuffer -> int

Paramètres

dst
ByteBuffer

Mémoire tampon dans laquelle les octets doivent être transférés

Retours

Nombre d’octets lus, éventuellement zéro, ou -1 si le canal a atteint la fin du flux

Implémente

Attributs

Remarques

Lit une séquence d’octets de ce canal dans la mémoire tampon donnée.

Une tentative est effectuée pour lire jusqu’à r octets à partir du canal, où r correspond au nombre d’octets restants dans la mémoire tampon, autrement dit, dst.remaining()au moment où cette méthode est appelée.

Supposons qu’une séquence d’octets de longueur n soit lue, où 0  ;<=  ;n  ;<=  ;r. Cette séquence d’octets est transférée dans la mémoire tampon afin que le premier octet de la séquence soit à l’index p et que le dernier octet soit à l’index p  ;+  ;n  ;-  ;1, où p est la position de la mémoire tampon au moment où cette méthode est appelée. Lors du retour, la position de la mémoire tampon est égale à p  ;+  ;n ; sa limite n’aura pas changé.

Une opération de lecture peut ne pas remplir la mémoire tampon et, en fait, elle peut ne pas lire d’octets du tout. Si elle le fait ou non dépend de la nature et de l’état du canal. Un canal de socket en mode non bloquant, par exemple, ne peut pas lire plus d’octets que ce qui est immédiatement disponible à partir de la mémoire tampon d’entrée du socket ; de même, un canal de fichier ne peut pas lire plus d’octets que de rester dans le fichier. Toutefois, il est garanti que si un canal est en mode bloquant et qu’il y a au moins un octet restant dans la mémoire tampon, cette méthode bloque jusqu’à ce qu’au moins un octet soit lu.

Cette méthode peut être appelée à tout moment. Si un autre thread a déjà lancé une opération de lecture sur ce canal, toutefois, un appel de cette méthode se bloque jusqu’à ce que la première opération soit terminée.

Documentation Java pour java.nio.channels.ReadableByteChannel.read(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.

S’applique à

Read(ByteBuffer[])

Lit une séquence d’octets de ce canal dans les mémoires tampons données.

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler")]
public abstract long Read (Java.Nio.ByteBuffer[]? dsts);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler")>]
abstract member Read : Java.Nio.ByteBuffer[] -> int64

Paramètres

dsts
ByteBuffer[]

Mémoires tampons dans lesquelles les octets doivent être transférés

Retours

Nombre d’octets lus, éventuellement zéro, ou -1 si le canal a atteint la fin du flux

Implémente

Attributs

Remarques

Lit une séquence d’octets de ce canal dans les mémoires tampons données.

Un appel de cette méthode du formulaire c.read(dsts) se comporte exactement de la même façon que l’appel

<blockquote>

c.read(dsts, 0, dsts.length);

</blockquote>

Documentation Java pour java.nio.channels.ScatteringByteChannel.read(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.

S’applique à

Read(ByteBuffer[], Int32, Int32)

Lit une séquence d’octets de ce canal dans une sous-séquence des mémoires tampons données.

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler")]
public abstract long Read (Java.Nio.ByteBuffer[]? dsts, int offset, int length);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler")>]
abstract member Read : Java.Nio.ByteBuffer[] * int * int -> int64

Paramètres

dsts
ByteBuffer[]

Mémoires tampons dans lesquelles les octets doivent être transférés

offset
Int32

Décalage dans le tableau de mémoires tampons du premier tampon dans lequel les octets doivent être transférés ; doit être non négatif et pas plus grand que dsts.length

length
Int32

Nombre maximal de mémoires tampons à accéder ; doit être non négatif et pas plus grand que dsts.length  ;-  ;offset

Retours

Nombre d’octets lus, éventuellement zéro, ou -1 si le canal a atteint la fin du flux

Implémente

Attributs

Remarques

Lit une séquence d’octets de ce canal dans une sous-séquence des mémoires tampons données.

Un appel de cette méthode tente de lire jusqu’à r octets à partir de ce canal, où r correspond au nombre total d’octets restant la sous-séquence spécifiée du tableau de mémoires tampons donné, autrement dit,

<blockquote>

dsts[offset].remaining()
                + dsts[offset+1].remaining()
                + ... + dsts[offset+length-1].remaining()

</blockquote>

au moment où cette méthode est appelée.

Supposons qu’une séquence d’octets de longueur n soit lue, où 0  ;<=  ;n  ;<=  ;r. Jusqu’aux premiers dsts[offset].remaining() octets de cette séquence sont transférés dans la mémoire tampon dsts[offset], jusqu’aux octets suivants dsts[offset+1].remaining() sont transférés dans la mémoire tampon dsts[offset+1], et ainsi de suite, jusqu’à ce que la séquence d’octets entière soit transférée dans les mémoires tampons données. Autant d’octets que possible sont transférés dans chaque mémoire tampon, donc la position finale de chaque mémoire tampon mise à jour, à l’exception de la dernière mémoire tampon mise à jour, est garantie d’être égale à la limite de cette mémoire tampon.

Cette méthode peut être appelée à tout moment. Si un autre thread a déjà lancé une opération de lecture sur ce canal, toutefois, un appel de cette méthode se bloque jusqu’à ce que la première opération soit terminée.

Documentation Java pour java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[], int, int).

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.

S’applique à