MemoryStream.Read Метод

Определение

Перегрузки

Read(Span<Byte>)

Считывает последовательность байтов из текущего потока в памяти и перемещает позицию внутри потока в памяти на число считанных байтов.

Read(Byte[], Int32, Int32)

Считывает блок байтов из текущего потока и записывает данные в буфер.

Read(Span<Byte>)

Считывает последовательность байтов из текущего потока в памяти и перемещает позицию внутри потока в памяти на число считанных байтов.

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

Параметры

destinationbuffer
Span<Byte>

Область памяти. Когда этот метод возвращает управление, содержимое этого интервала заменяется байтами, считанными из источника текущего потока в памяти.

Возвращаемое значение

Int32

Общее количество байтов, считанных в буфер. Это число может быть меньше количества выделенных в буфере байтов, если столько байтов в настоящее время недоступно, а также равняться нулю (0), если был достигнут конец потока в памяти.

Применяется к

Read(Byte[], Int32, Int32)

Считывает блок байтов из текущего потока и записывает данные в буфер.

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

Параметры

buffer
Byte[]

При возвращении данного метода этот параметр содержит указанный массив байтов со значениями от offset до (offset + count - 1), замененными символами, считанными из текущего потока.

offset
Int32

Отсчитываемое от нуля смещение байтов в буфере buffer, с которого начинается сохранение данных из текущего потока.

count
Int32

Максимальное число байтов, предназначенных для чтения.

Возвращаемое значение

Int32

Общее число байтов, записанных в буфер. Оно может быть меньше запрошенного числа байтов, если это количество в текущий момент не доступно, или же равно нулю, если конец потока достигнут до того, как байты были считаны.

Исключения

buffer имеет значение null.

offset или count является отрицательным значением.

Длина буфера за вычетом offset меньше, чем count.

Текущий экземпляр потока закрыт.

Примеры

Этот пример входит в состав более крупного примера использования класса 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)

Комментарии

Этот метод переопределяет метод Read.

Параметр offset дает смещение первого байта, в buffer который записываются данные из текущего потока. Параметр count предоставляет максимальное количество байтов для чтения из текущего потока. Возвращаемое значение — это фактическое число прочитанных байтов или ноль, если достигнут конец потока.

Если операция чтения выполнена успешно, текущая позиция в потоке перемещается на число прочитанных байтов. Если возникает исключение, текущая позиция в потоке остается неизменной.

Метод Read возвращает ноль только в том случае, если достигнут конец потока. Во всех остальных случаях Read всегда считывает по крайней мере один байт из потока перед возвратом. По определению, если данные из потока недоступны при вызове Read, Read метод возвращает ноль (конец потока достигается автоматически). Реализация может возвращать меньше байтов, чем запрошено, даже если конец потока не достигнут.

Используется BinaryReader для чтения примитивных типов данных.

Внимание!

Если массив байтов, указанный в buffer параметре, является базовым буфером, возвращаемым методом GetBuffer , содержимое массива перезаписывается и исключение не создается.

См. также раздел

Применяется к