Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Stream.Read (Método)

Al reescribir en una clase derivada, se lee una secuencia de bytes en la secuencia actual y se hace avanzar la posición dentro de la secuencia el número de bytes leídos.

Espacio de nombres:  System.IO
Ensamblado:  mscorlib (en mscorlib.dll)

public abstract int Read(
	byte[] buffer,
	int offset,
	int count
)

Parámetros

buffer
Tipo: System.Byte[]
Matriz de bytes. Cuando este método finaliza, el búfer contiene la matriz de bytes especificada con valores entre offset y (offset + count - 1) reemplazada con los bytes leídos del origen actual.
offset
Tipo: System.Int32
Posición de desplazamiento en bytes de base cero de buffer donde se comienza a almacenar los datos leídos de la secuencia actual.
count
Tipo: System.Int32
Número máximo de bytes que se deben leer de la secuencia actual.

Valor devuelto

Tipo: System.Int32
Número total de bytes leídos en el búfer. Puede ser menor que el número de bytes solicitado si dicho número no está disponible, o puede ser cero (0) si se alcanza el final de la secuencia.

ExcepciónCondición
ArgumentException

La suma de offset y count es mayor que la longitud del búfer.

ArgumentNullException

buffer es null.

ArgumentOutOfRangeException

offset o count son negativo.

IOException

Se produce un error de E/S.

NotSupportedException

La secuencia no admite lectura.

ObjectDisposedException

Tras cerrar la secuencia, se llamó a algún método.

Se utiliza la propiedad CanRead para determinar si la instancia actual admite operaciones de lectura. Utilice el método ReadAsync para leer de forma asincrónica de la secuencia actual.

Las implementaciones de este método leen un máximo count de bytes de la secuencia actual y los almacenan en el parámetro buffer, al comienzo de offset. La posición actual dentro de la secuencia avanza el número de bytes leídos; sin embargo, si se produce una excepción, la posición actual en la secuencia no sufre ningún cambio. Las implementaciones devuelven el número de bytes leídos. La implementación se bloqueará hasta que pueda leerse al menos un byte de datos en caso de que no haya datos disponibles. Read devuelve 0 sólo cuando no hay más datos en la secuencia y no se espera ninguno más (como un socket cerrado o fin de fichero). Cualquier implementación tiene la libertad de devolver menos bytes de los solicitados, incluso si no se ha alcanzado el final de la secuencia.

Utilice BinaryReader para leer tipos de datos primitivos.

En el ejemplo siguiente se muestra cómo utilizar Read para leer un bloque de datos.


using System;
using System.IO;

public class Block
{
    public static void Main()
    {
        Stream s = new MemoryStream();
        for (int i = 0; i < 100; i++)
        {
            s.WriteByte((byte)i);
        }
        s.Position = 0;

        // Now read s into a byte buffer.
        byte[] bytes = new byte[s.Length];
        int numBytesToRead = (int) s.Length;
        int numBytesRead = 0;
        while (numBytesToRead > 0)
        {
            // Read may return anything from 0 to 10.
            int n = s.Read(bytes, numBytesRead, 10);
            // The end of the file is reached.
            if (n == 0)
            {
                break;
            }
            numBytesRead += n;
            numBytesToRead -= n;
        }
        s.Close();
        // numBytesToRead should be 0 now, and numBytesRead should
        // equal 100.
        Console.WriteLine("number of bytes read: {0:d}", numBytesRead);
    }
}


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft