MemoryStream.Read 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
| Nombre | Description |
|---|---|
| Read(Span<Byte>) |
Lee una secuencia de bytes de la secuencia de memoria actual y avanza la posición dentro de la secuencia de memoria por el número de bytes leídos. |
| Read(Byte[], Int32, Int32) |
Lee un bloque de bytes de la secuencia actual y escribe los datos en un búfer. |
Read(Span<Byte>)
Lee una secuencia de bytes de la secuencia de memoria actual y avanza la posición dentro de la secuencia de memoria por el número de bytes leídos.
public:
override int Read(Span<System::Byte> destination);
public override int Read(Span<byte> destination);
override this.Read : Span<byte> -> int
Public Overrides Function Read (destination As Span(Of Byte)) As Integer
Parámetros
Una región de memoria. Cuando este método devuelve, el contenido de este intervalo se reemplaza por los bytes leídos del origen de flujo de memoria actual.
Devoluciones
Número total de bytes leídos en el búfer. Puede ser menor que el número de bytes asignados en el búfer si no hay muchos bytes disponibles actualmente o cero (0) si se ha alcanzado el final de la secuencia de memoria.
Se aplica a
Read(Byte[], Int32, Int32)
Lee un bloque de bytes de la secuencia actual y escribe los datos en un búfer.
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read(byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
Parámetros
- buffer
- Byte[]
Cuando este método devuelve, contiene la matriz de bytes especificada con los valores entre offset y (offset + count - 1) reemplazados por los caracteres leídos de la secuencia actual.
- offset
- Int32
Desplazamiento de bytes de base cero en el buffer que se van a empezar a almacenar datos de la secuencia actual.
- count
- Int32
Número máximo de bytes que se van a leer.
Devoluciones
Número total de bytes escritos en el búfer. Esto puede ser menor que el número de bytes solicitado si ese número de bytes no está disponible actualmente, o cero si se alcanza el final de la secuencia antes de leer cualquier bytes.
Excepciones
buffer es null.
offset o count es negativo.
offset restada de la longitud del búfer es menor que count.
La instancia de flujo actual está cerrada.
Ejemplos
Este ejemplo de código forma parte de un ejemplo más grande proporcionado para la MemoryStream clase .
// Read the first 20 bytes from the stream.
byteArray = new byte[memStream.Length];
count = memStream.Read(byteArray, 0, 20);
' Read the first 20 bytes from the stream.
byteArray = _
New Byte(CType(memStream.Length, Integer)){}
count = memStream.Read(byteArray, 0, 20)
Comentarios
Este método invalida Read.
El offset parámetro proporciona el desplazamiento del primer byte en buffer el que se escriben los datos de la secuencia actual. El count parámetro proporciona el número máximo de bytes que se van a leer de la secuencia actual. El valor devuelto es el número real de bytes leídos o cero si se alcanza el final de la secuencia.
Si la operación de lectura se realiza correctamente, la posición actual dentro de la secuencia avanza por el número de bytes leídos. Si se produce una excepción, la posición actual dentro de la secuencia permanece sin cambios.
El Read método devolverá cero solo si se alcanza el final de la secuencia. En todos los demás casos, Read siempre lee al menos un byte de la secuencia antes de devolverlo. Por definición, si no hay datos disponibles desde la secuencia tras una llamada a Read, el Read método devuelve cero (el final de la secuencia se alcanza automáticamente). Una implementación es libre para devolver menos bytes de los solicitados incluso si no se ha alcanzado el final de la secuencia.
Se usa BinaryReader para leer tipos de datos primitivos.
Precaución
Si la matriz de bytes especificada en el buffer parámetro es el búfer subyacente devuelto por el GetBuffer método , el contenido de la matriz se sobrescribe y no se produce ninguna excepción.