Что такое поток? TStream?
Поток - это то, что предполагает его название: текущая «река данных». Поток имеет начало, конец, и вы всегда находитесь где-то между этими двумя точками.
С помощью Делфи Объекты TStream, которые вы можете читать или записывать на различные типы носителей, такие как дисковые файлы, динамическая память и т. Д.
Какие данные может содержать поток?
Поток может содержать все, что угодно, в том порядке, в котором вы хотите. В примере проекта, сопровождающего эту статью, записи фиксированного размера используются для простоты, но вы можете записать любой поток данных переменного размера в поток. Помните, однако, что _you_ несут ответственность за домашнее хозяйство. Delphi не может «запомнить», какие данные находятся в потоке или в каком порядке!
Потоки против массивов
Недостатком массивов является наличие фиксированного размера, который должен быть известен во время компиляции. Хорошо, вы можете использовать динамические массивы.
Поток, с другой стороны, может увеличиваться до размера доступной памяти, которая является значительно большим размером в современных системах, без каких-либо «домашних хозяйств».
Поток не может быть проиндексирован, как массив. Но, как вы увидите ниже, «ходить» вверх и вниз по течению очень легко.
Потоки могут быть сохранены / загружены в / из файлов в одну простую операцию.
Ароматы потоков
TStream является базовым (абстрактным) типом класса для потоковых объектов. Быть абстрактным означает, что TStream никогда не должен использоваться как таковой, а только в его дочерних формах. Для потоковой передачи любой информации выберите класс-потомок в соответствии с конкретными данными и потребностями хранения. Например:
- TFileStream (для работы с файлами)
- TMemoryStream (для работы с буфером памяти)
- TStringStream (для работы со строками в памяти)
- TBlobStream (для работы с полями BLOB)
- TWinSocketStream (для чтения и записи через сокетное соединение)
- TOleStream (для использования интерфейса COM для чтения и записи)
Как вы увидите, TmemoryStream и TFileStream удивительно взаимозаменяемы и совместимы.
Скачать пример проекта!