Compartir a través de


InputStream.ReadNBytes Método

Definición

Sobrecargas

ReadNBytes(Int32)

Lee hasta un número especificado de bytes de la secuencia de entrada.

ReadNBytes(Byte[], Int32, Int32)

Lee el número solicitado de bytes de la secuencia de entrada en la matriz de bytes especificada.

ReadNBytes(Int32)

Lee hasta un número especificado de bytes de la secuencia de entrada.

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

Parámetros

len
Int32

el número máximo de bytes que se van a leer

Devoluciones

Byte[]

una matriz de bytes que contiene los bytes leídos de este flujo de entrada

Atributos

Comentarios

Lee hasta un número especificado de bytes de la secuencia de entrada. Este método se bloquea hasta que se ha leído el número solicitado de bytes, se detecta el final de la secuencia o se produce una excepción. Este método no cierra el flujo de entrada.

La longitud de la matriz devuelta es igual al número de bytes leídos de la secuencia. Si len es cero, no se leen bytes y se devuelve una matriz de bytes vacía. De lo contrario, se leen hasta len bytes de la secuencia. Es posible que se lean menos de len bytes si se encuentra el final de la secuencia.

Cuando esta secuencia llega al final de la secuencia, las invocaciones adicionales de este método devolverán una matriz de bytes vacía.

Tenga en cuenta que este método está pensado para casos sencillos en los que resulta conveniente leer el número especificado de bytes en una matriz de bytes. La cantidad total de memoria asignada por este método es proporcional al número de bytes leídos de la secuencia enlazada por len. Por lo tanto, se puede llamar al método de forma segura con valores muy grandes de len memoria suficiente disponible.

El comportamiento del caso en el que el flujo de entrada está cerrado de forma asincrónica o el subproceso interrumpido durante la lectura es muy específico del flujo de entrada y, por lo tanto, no se especifica.

Si se produce un error de E/S al leer desde el flujo de entrada, puede hacerlo después de algunos bytes, pero no todos, se han leído. Por lo tanto, el flujo de entrada puede no estar al final del flujo y puede estar en un estado incoherente. Se recomienda encarecidamente que la secuencia se cierre rápidamente si se produce un error de E/S.

Agregado en 11.

Documentación de Java para java.io.InputStream.readNBytes(int).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a

ReadNBytes(Byte[], Int32, Int32)

Lee el número solicitado de bytes de la secuencia de entrada en la matriz de bytes especificada.

[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

Parámetros

b
Byte[]

matriz de bytes en la que se leen los datos

off
Int32

desplazamiento inicial en b el que se escriben los datos

len
Int32

el número máximo de bytes que se van a leer

Devoluciones

el número real de bytes leídos en el búfer

Atributos

Comentarios

Lee el número solicitado de bytes de la secuencia de entrada en la matriz de bytes especificada. Este método se bloquea hasta que len se han leído bytes de datos de entrada, se detecta el final de la secuencia o se produce una excepción. Se devuelve el número de bytes leídos realmente, posiblemente cero. Este método no cierra el flujo de entrada.

En caso de que se alcance el final de la secuencia antes len de leer bytes, se devolverá el número real de bytes leídos. Cuando esta secuencia llega al final de la secuencia, las invocaciones adicionales de este método devolverán cero.

Si len es cero, no se leen bytes y 0 se devuelve; de lo contrario, se intenta leer hasta len bytes.

La primera lectura de bytes se almacena en el elemento b[off], la siguiente en y b[off+1]así sucesivamente. El número de bytes leídos es, como máximo, igual que len. Dejemos que k sea el número de bytes leídos; estos bytes se almacenarán en elementos b[off] a través b[off+de k-1], dejando los elementos b[off+k] sin b[off+len-1] verse afectados.

El comportamiento del caso en el que el flujo de entrada está cerrado de forma asincrónica o el subproceso interrumpido durante la lectura es muy específico del flujo de entrada y, por lo tanto, no se especifica.

Si se produce un error de E/S al leer desde el flujo de entrada, puede hacerlo después de algunos bytes, pero no todos, se han actualizado con datos del flujo de b entrada. Por lo tanto, el flujo de entrada y b puede estar en un estado incoherente. Se recomienda encarecidamente que la secuencia se cierre rápidamente si se produce un error de E/S.

Agregado en 9.

Documentación de Java para java.io.InputStream.readNBytes(byte[], int, int).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a