InputStream.ReadNBytes Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.