Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
775 of 1492 menu
◀ ▶

Метод Read

Stream.Read(buffer, offset, count) возвращает, сколько байт реально прочитано; это может быть меньше count. 0 означает конец потока. Запись данных - Write. Перед чтением часто вызывают Seek или сбрасывают Position. Есть ReadAsync.

Синтаксис

int read = stream.Read(buffer, offset, count);

Пример

Давайте прочитаем три байта из MemoryStream:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Position = 0; byte[] buf = new byte[10]; int res = ms.Read(buf, 0, 3); Console.WriteLine(res); } }

Результат выполнения кода:

3

Пример

Давайте дочитаем остаток - число меньше запрошенного count:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Position = 0; byte[] buf = new byte[10]; ms.Read(buf, 0, 3); int res = ms.Read(buf, 0, 10); Console.WriteLine(res); } }

Результат выполнения кода:

2

Пример

Давайте прочитаем после конца - вернётся 0:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Position = 5; byte[] buf = new byte[4]; int res = ms.Read(buf, 0, 4); Console.WriteLine(res); } }

Результат выполнения кода:

0

Смотрите также

  • метод Write,
    который записывает байты
  • метод ReadExactly,
    который читает ровно столько байт
  • метод ReadAtLeast,
    который читает хотя бы минимум
  • Stream,
    класс, где объявлен Read
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить