Потоки, потоки, TStream в Delphi

Что такое поток? TStream?

Поток - это то, что предполагает его название: текущая «река данных». Поток имеет начало, конец, и вы всегда находитесь где-то между этими двумя точками.

С помощью Делфи Объекты TStream, которые вы можете читать или записывать на различные типы носителей, такие как дисковые файлы, динамическая память и т. Д.

Какие данные может содержать поток?

Поток может содержать все, что угодно, в том порядке, в котором вы хотите. В примере проекта, сопровождающего эту статью, записи фиксированного размера используются для простоты, но вы можете записать любой поток данных переменного размера в поток. Помните, однако, что _you_ несут ответственность за домашнее хозяйство. Delphi не может «запомнить», какие данные находятся в потоке или в каком порядке!

Потоки против массивов

Недостатком массивов является наличие фиксированного размера, который должен быть известен во время компиляции. Хорошо, вы можете использовать динамические массивы.

Поток, с другой стороны, может увеличиваться до размера доступной памяти, которая является значительно большим размером в современных системах, без каких-либо «домашних хозяйств».

instagram viewer

Поток не может быть проиндексирован, как массив. Но, как вы увидите ниже, «ходить» вверх и вниз по течению очень легко.

Потоки могут быть сохранены / загружены в / из файлов в одну простую операцию.

Ароматы потоков

TStream является базовым (абстрактным) типом класса для потоковых объектов. Быть абстрактным означает, что TStream никогда не должен использоваться как таковой, а только в его дочерних формах. Для потоковой передачи любой информации выберите класс-потомок в соответствии с конкретными данными и потребностями хранения. Например:

  • TFileStream (для работы с файлами)
  • TMemoryStream (для работы с буфером памяти)
  • TStringStream (для работы со строками в памяти)
  • TBlobStream (для работы с полями BLOB)
  • TWinSocketStream (для чтения и записи через сокетное соединение)
  • TOleStream (для использования интерфейса COM для чтения и записи)

Как вы увидите, TmemoryStream и TFileStream удивительно взаимозаменяемы и совместимы.

Скачать пример проекта!

instagram story viewer