Partager via


InputStream.ReadNBytes Méthode

Définition

Surcharges

ReadNBytes(Int32)

Lit jusqu’à un nombre spécifié d’octets à partir du flux d’entrée.

ReadNBytes(Byte[], Int32, Int32)

Lit le nombre demandé d’octets du flux d’entrée dans le tableau d’octets donné.

ReadNBytes(Int32)

Lit jusqu’à un nombre spécifié d’octets à partir du flux d’entrée.

[Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)]
public virtual byte[]? ReadNBytes (int len);
[<Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)>]
abstract member ReadNBytes : int -> byte[]
override this.ReadNBytes : int -> byte[]

Paramètres

len
Int32

nombre maximal d’octets à lire

Retours

Byte[]

tableau d’octets contenant les octets lus à partir de ce flux d’entrée

Attributs

Remarques

Lit jusqu’à un nombre spécifié d’octets à partir du flux d’entrée. Cette méthode bloque jusqu’à ce que le nombre demandé d’octets ait été lu, que la fin du flux soit détectée ou qu’une exception soit levée. Cette méthode ne ferme pas le flux d’entrée.

La longueur du tableau retourné est égale au nombre d’octets lus à partir du flux. Si len la valeur est égale à zéro, aucun octet n’est lu et un tableau d’octets vide est retourné. Sinon, jusqu’à len bytes sont lus à partir du flux. Moins len d’octets peuvent être lus si la fin du flux est rencontrée.

Lorsque ce flux atteint la fin du flux, d’autres appels de cette méthode retournent un tableau d’octets vide.

Notez que cette méthode est destinée aux cas simples où il est pratique de lire le nombre spécifié d’octets dans un tableau d’octets. La quantité totale de mémoire allouée par cette méthode est proportionnelle au nombre d’octets lus à partir du flux qui est limité par len. Par conséquent, la méthode peut être appelée en toute sécurité avec des valeurs très volumineuses de len mémoire suffisante fournie.

Le comportement pour le cas où le flux d’entrée est fermé de manière asynchrone, ou le thread interrompu pendant la lecture, est très spécifique au flux d’entrée et n’est donc pas spécifié.

Si une erreur d’E/S se produit lors de la lecture à partir du flux d’entrée, elle peut le faire une fois que certains octets ont été lus, mais pas tous. Par conséquent, le flux d’entrée peut ne pas être à la fin du flux et peut être dans un état incohérent. Il est fortement recommandé de fermer rapidement le flux si une erreur d’E/S se produit.

Ajouté dans 11.

Documentation Java pour java.io.InputStream.readNBytes(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 à

ReadNBytes(Byte[], Int32, Int32)

Lit le nombre demandé d’octets du flux d’entrée dans le tableau d’octets donné.

[Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)]
public virtual int ReadNBytes (byte[]? b, int off, int len);
[<Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)>]
abstract member ReadNBytes : byte[] * int * int -> int
override this.ReadNBytes : byte[] * int * int -> int

Paramètres

b
Byte[]

tableau d’octets dans lequel les données sont lues

off
Int32

décalage de début dans b lequel les données sont écrites

len
Int32

nombre maximal d’octets à lire

Retours

nombre réel d’octets lus dans la mémoire tampon

Attributs

Remarques

Lit le nombre demandé d’octets du flux d’entrée dans le tableau d’octets donné. Cette méthode bloque jusqu’à ce que len les octets des données d’entrée aient été lus, que la fin du flux soit détectée ou qu’une exception soit levée. Le nombre d’octets en réalité lus, éventuellement zéro, est retourné. Cette méthode ne ferme pas le flux d’entrée.

Dans le cas où la fin du flux est atteinte avant len que les octets aient été lus, le nombre réel d’octets lus est retourné. Lorsque ce flux atteint la fin du flux, d’autres appels de cette méthode retournent zéro.

Si len la valeur est égale à zéro, aucun octet n’est lu et 0 est retourné ; sinon, il existe une tentative de lecture jusqu’à len des octets.

La première lecture d’octets est stockée dans l’élément b[off], la suivante dans b[off+1], et ainsi de suite. Le nombre d’octets lus est, au plus, égal à len. Laissez k être le nombre d’octets réellement lus ; ces octets seront stockés dans des éléments b[off] par b[off+k-1], laissant les éléments b[off+k] à b[off+len-1] non affectés.

Le comportement pour le cas où le flux d’entrée est fermé de manière asynchrone, ou le thread interrompu pendant la lecture, est très spécifique au flux d’entrée et n’est donc pas spécifié.

Si une erreur d’E/S se produit lors de la lecture à partir du flux d’entrée, elle peut le faire une fois que certains octets b , mais pas tous, ont été mis à jour avec les données du flux d’entrée. Par conséquent, le flux d’entrée peut b être dans un état incohérent. Il est fortement recommandé de fermer rapidement le flux si une erreur d’E/S se produit.

Ajouté dans 9.

Documentation Java pour java.io.InputStream.readNBytes(byte[], 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 à