Так как строковые константы и переменные широко применяются при разработке приложений, то для удобства работы с ними создан специальный класс TStringStream. Он обеспечивает хранение строки и доступ к ней во время выполнения приложения.
Он обладает стандартным для потоков набором свойств и методов, добавляя к ним еще несколько, упрощающих использование строк.
Свойство только для чтения
property DataString: string;
обеспечивает доступ к хранимой строке. Методы
function Read(var Buffer; Count: Longint): Longint; override;
И
function Write(const Buffer; Count: Longint): Longint; override;
реализуют обычный для потоков способ чтения и записи строки для произвольной переменной Buffer.
Метод
function ReadString(Count: Longint): string;
обеспечивает чтение count байтов строки потока, начиная с текущей позиции.
Метод
procedure WriteString(const AString: string);
дописывает к строке строку AString, начиная с текущей позиции.
При работе с файлами и потоками используются дополнительные классы исключительных ситуаций.
Класс EFCreateError возникает при ошибке создания файла, a EFOpenError — при открытии файла.
При чтении/записи данных в поток могут возникнуть исключительные ситуации EReadError И EWriteError.