IGatheringByteChannel.Write Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| Write(ByteBuffer[]) |
Écrit une séquence d’octets dans ce canal à partir des mémoires tampons données. |
| Write(ByteBuffer[], Int32, Int32) |
Écrit une séquence d’octets dans ce canal à partir d’une sous-séquence des mémoires tampons données. |
Write(ByteBuffer[])
Écrit une séquence d’octets dans ce canal à partir des mémoires tampons données.
[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Write(Java.Nio.ByteBuffer[]? srcs);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Write : Java.Nio.ByteBuffer[] -> int64
Paramètres
- srcs
- ByteBuffer[]
Mémoires tampons à partir desquelles les octets doivent être récupérés
Retours
Nombre d’octets écrits, éventuellement zéro
- Attributs
Exceptions
si le canal est fermé par un autre thread pendant cette opération d’écriture.
si un autre thread interrompt le thread appelant pendant que l’opération est en cours. L’état d’interruption du thread appelant est défini et le canal est fermé.
si le canal est fermé.
si offset ou length , ou si offset + length est supérieur à la taille de buffers.
si une autre erreur d’E/S se produit ; les détails sont dans le message.
si le canal n’a pas été ouvert en mode qui autorise l’écriture.
Remarques
Écrit une séquence d’octets dans ce canal à partir des mémoires tampons données.
Un appel de cette méthode du formulaire c.write(srcs) se comporte exactement de la même façon que l’appel
<blockquote>
c.write(srcs, 0, srcs.length);
</blockquote>
Java documentation pour java.nio.channels.GatheringByteChannel.write(java.nio.ByteBuffer[]).
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
S’applique à
Write(ByteBuffer[], Int32, Int32)
Écrit une séquence d’octets dans ce canal à partir d’une sous-séquence des mémoires tampons données.
[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Write(Java.Nio.ByteBuffer[]? srcs, int offset, int length);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Write : Java.Nio.ByteBuffer[] * int * int -> int64
Paramètres
- srcs
- ByteBuffer[]
Mémoires tampons à partir desquelles les octets doivent être récupérés
- offset
- Int32
Décalage dans le tableau de mémoires tampons du premier tampon à partir duquel les octets doivent être récupérés ; doit être non négatif et pas plus grand que srcs.length
- length
- Int32
Nombre maximal de mémoires tampons à accéder ; doit être non négatif et pas plus grand que srcs.length ;- ;offset
Retours
Nombre d’octets écrits, éventuellement zéro
- Attributs
Exceptions
si le canal est fermé par un autre thread pendant cette opération d’écriture.
si un autre thread interrompt le thread appelant pendant que l’opération est en cours. L’état d’interruption du thread appelant est défini et le canal est fermé.
si le canal est fermé.
si offset ou length , ou si offset + length est supérieur à la taille de buffers.
si une autre erreur d’E/S se produit ; les détails sont dans le message.
si le canal n’a pas été ouvert pour l’écriture.
Remarques
Écrit une séquence d’octets dans ce canal à partir d’une sous-séquence des mémoires tampons données.
Une tentative est effectuée pour écrire jusqu’à r octets dans ce canal, où r correspond au nombre total d’octets restants dans la sous-file d’attente spécifiée du tableau de mémoires tampons donné, autrement dit,
<blockquote>
srcs[offset].remaining()
+ srcs[offset+1].remaining()
+ ... + srcs[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 écrite, où 0 ;<= ; n ;<= ; r. Jusqu’aux premiers srcs[offset].remaining() octets de cette séquence sont écrits à partir de la mémoire tampon srcs[offset], jusqu’aux octets suivants srcs[offset+1].remaining() sont écrits à partir de la mémoire tampon srcs[offset+1], et ainsi de suite, jusqu’à ce que la séquence d’octets entière soit écrite. Autant d’octets que possible sont écrits à partir de chaque mémoire tampon, donc la position finale de chaque mémoire tampon mise à jour, sauf la dernière mémoire tampon mise à jour, est garantie d’être égale à la limite de cette mémoire tampon.
Sauf indication contraire, une opération d’écriture ne retourne qu’après avoir écrit tous les octets demandés. Certains types de canaux, en fonction de leur état, peuvent écrire uniquement quelques-uns des octets ou éventuellement aucun du tout. Un canal de socket en mode non bloquant, par exemple, ne peut pas écrire plus d’octets que ce qui est libre dans la mémoire tampon de sortie du socket.
Cette méthode peut être appelée à tout moment. Si un autre thread a déjà lancé une opération d’écriture sur ce canal, toutefois, un appel de cette méthode se bloque jusqu’à ce que la première opération soit terminée.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.