Поток, конвейер, сокет, файл, что угодно ... все они похожи, в следующем:
- Они инициализируются (открываются), затем уничтожаются (закрываются);
- У вас есть дескриптор (экземпляр) над этой структурой;
- Вы используете методы чтения и записи, которые могут извлекать меньше содержимого, чем запрошено (допускается поток без размеров / бесконечный / абстрактный).
В мире POSIX / UNIX , например, «все это файл», даже сеть, настройка, процессор, устройство ...
В Delphi вы можетеидеально наследует от TStream
для реализации этого поведения.
Даже метод Seek
не должен обрабатывать все случаи.Вы можете иметь однонаправленные / однонаправленные потоки, только для чтения или только для записи.
Затем вы можете поделиться одним и тем же кодом с различными реализациями TStream
, в / из файла, сети, некоторой памяти, клавиатура, экран, что угодно ... Вы можете даже вкладывать потоки, чтобы добавить сжатие, шифрование, репликацию на лету ...
Так что, если вы находитесь в мире Delphi, простоНазовите это «поток», реализует TStream
... и счастливое кодирование!