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
Read(Span<Byte>) |
Lee una secuencia de bytes del flujo de memoria y avanza la posición en la secuencia de memoria según 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>)
- Source:
- MemoryStream.cs
- Source:
- MemoryStream.cs
- Source:
- MemoryStream.cs
Lee una secuencia de bytes del flujo de memoria y avanza la posición en la secuencia de memoria según el número de bytes leídos.
public:
override int Read(Span<System::Byte> destination);
public:
override int Read(Span<System::Byte> buffer);
public override int Read (Span<byte> destination);
public override int Read (Span<byte> buffer);
override this.Read : Span<byte> -> int
override this.Read : Span<byte> -> int
Public Overrides Function Read (destination As Span(Of Byte)) As Integer
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer
Parámetros
Región de memoria. Cuando este método devuelve un valor, el contenido de este intervalo se reemplaza por los bytes leídos del origen de la secuencia de memoria actual.
Devoluciones
Número total de bytes leídos en el búfer. Puede ser menor que el número de bytes asignado en el búfer si esos bytes no están disponibles en ese momento, o bien cero (0) si se ha alcanzado el final de la secuencia de memoria.
Se aplica a
Read(Byte[], Int32, Int32)
- Source:
- MemoryStream.cs
- Source:
- MemoryStream.cs
- Source:
- MemoryStream.cs
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 un valor, contiene la matriz de bytes especificada con valores entre offset
y (offset
+ count
- 1) reemplazada por los caracteres leídos de la secuencia actual.
- offset
- Int32
Posición de desplazamiento en bytes de base cero de buffer
en el que se comienza a almacenar los datos de la secuencia actual.
- count
- Int32
Número máximo de bytes que se pueden leer.
Devoluciones
Número total de bytes escritos en el búfer. Puede ser menor que el número de bytes solicitado si ese número de bytes no está disponible, o bien puede ser cero si se alcanza el final de la secuencia antes de que se lea algún byte.
Excepciones
buffer
es null
.
offset
o count
es negativo.
offset
, restado de la longitud de búfer, es menor que count
.
La instancia de la secuencia actual está cerrada.
Ejemplos
Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase MemoryStream.
// Read the first 20 bytes from the stream.
byteArray = gcnew array<Byte>(memStream->Length);
count = memStream->Read( byteArray, 0, 20 );
// 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 volver. 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 método , el contenido de la GetBuffer matriz se sobrescribe y no se produce ninguna excepción.