Абстрактный класс Stream C#

Класс Stream

Базовым классом для всех потоков является абстрактный класс Stream, располагающийся в пространстве имен System.IO. Класс обеспечивает универсальное представление всех потоков ввода-вывода.

В классе Stream определены свойства и методы, которые выполняют следующие действия:

  • чтение потока;
  • запись потока;
  • поиск в потоке;
  • закрытие потока;
  • сброс потока;
  • настройка тайм-аута;
  • другие операции.

Операции (методы) чтения потока

Для чтения потока определены следующие методы и свойства:

  • свойство CanRead — оно определяет возможность потока поддерживать чтение;
  • метод Read() — метод читает последовательность байт из текущего потока;
  • метод ReadByte() — метод читает один байт из текущего потока.

Свойство CanRead. Назначение. Общая форма. Пример

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

Если свойство возвращает true, то поток поддерживает чтение.

Пример. В примере определяется, поддерживает ли файловый поток чтение.

Метод Read(). Пример

Абстрактный метод Read() , позволяет прочитать последовательность байт из текущего потока. Метод имеет несколько реализаций. Общая форма наиболее распространенной реализации метода:

  • buffer – массив указанного размера, в который считываются данные потока;
  • offset — смещение (начиная с 0) в буфере buffer, с которого начинается считывание данных из потока;
  • count — максимально-возможное количество байт, которые могут быть считаны из текущего потока.

После чтения, позиция в потоке сдвигается на число прочитанных байт.

Пример. В примере, в файл записывается массив строк типа string[]. Затем этот массив строк считывается методом Read().

Метод ReadByte(). Пример

Виртуальный метод ReadByte() используется для чтения байта из потока. После чтения, текущая позиция чтения сдвигается на 1 байт. Если достигнут конец файла, то возвращается -1.

Общая форма метода следующая

Пример. Записываем число типа int и число типа double в файл. Затем читаем эти числа.

 

Обновлено: 02.03.2021 — 17:07

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.