MemoryStream.Read Метод

Определение

Перегрузки

Имя Описание
Read(Span<Byte>)

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

Read(Byte[], Int32, Int32)

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

Read(Span<Byte>)

Исходный код:
MemoryStream.cs
Исходный код:
MemoryStream.cs
Исходный код:
MemoryStream.cs
Исходный код:
MemoryStream.cs
Исходный код:
MemoryStream.cs

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

public:
 override int Read(Span<System::Byte> buffer);
public:
 override int Read(Span<System::Byte> destination);
public override int Read(Span<byte> buffer);
public override int Read(Span<byte> destination);
override this.Read : Span<byte> -> int
override this.Read : Span<byte> -> int
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer
Public Overrides Function Read (destination As Span(Of Byte)) As Integer

Параметры

destinationbuffer
Span<Byte>

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

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

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

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

Read(Byte[], Int32, Int32)

Исходный код:
MemoryStream.cs
Исходный код:
MemoryStream.cs
Исходный код:
MemoryStream.cs
Исходный код:
MemoryStream.cs
Исходный код:
MemoryStream.cs

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

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

Максимальное число байтов для чтения.

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

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

Исключения

buffer равно null.

offset или count отрицательный.

offset Вычитается из длины буфера меньше count.

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

Примеры

Этот пример кода является частью более крупного примера, предоставленного для MemoryStream класса.

// 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 методом, содержимое массива перезаписывается, и исключение не возникает.

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

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