Устанавливает поток для записи. Аналогичен методу Открыть.
Синтаксис
Новый ЗаписьТекста(<Поток>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>, <ЗаписатьBOM>)Полное описание, параметры и ограничения
ЗаписьТекста.На основании потока
ЗаписьТекста (TextWriter)
На основании потока
Доступен, начиная с версии 8.3.10.
Синтаксис:
Новый ЗаписьТекста(<Поток>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>, <ЗаписатьBOM>)
Параметры:
<Поток> (обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для записи.
<Кодировка> (необязательный)
Тип: КодировкаТекста, Строка.
Кодировка записываемого текста (согласована с текстовым документом).
Кодировка может быть задана как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые кодировки:
UTF-8
UTF-16
UTF-16BE
UTF-16LE
ISO-8859-1
US-ASCII
gb18030
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
iso-8859-9
iso-8859-13
iso-8859-15
Shift_JIS
EUC-JP
Big5
Big5-HKSCS
GBK
GB2312
GB_2312-80
EUC-KR
KSC_5601
windows-949
windows-874
cp866
KOI8-R
KOI8-U
windows-1250
windows-1251
windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
macintosh
x-mac-cyrillic
ISO-2022-JP
ISO-2022-KR
ISO-2022-CN
ISO-2022-CN-EXT
HZ-GB-2312
Значение по умолчанию: UTF8.
<РазделительСтрок> (необязательный)
Тип: Строка.
Определяет строку, разделяющую строки в потоке.
Значение по умолчанию: ПС.
<КонвертируемыйРазделительСтрок> (необязательный)
Тип: Строка.
Определяет разделение строк в потоке для конвертации в стандартный перевод строк ПС.
Значение по умолчанию: ВК + ПС.
<ЗаписатьBOM> (необязательный)
Тип: Булево.
Если в начало потока требуется записать метку порядка байтов (BOM) для используемой кодировки текста, то данный параметр должен иметь значение Истина.
Значение по умолчанию: Ложь.
Описание:
Устанавливает поток для записи. Аналогичен методу Открыть.
Использование в версии:
Доступен, начиная с версии 8.3.10.
Методическая информация
Практические примеры
Записать и прочитать UTF-8 в потоке памяти
Обмен текстом без файла: запись в ПотокВПамяти, позиционирование в начало и чтение через ЧтениеТекста.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Внешние файлы и настройки конфигурации не нужны.
Используйте конструктор по потоку; его пятый параметр — ЗаписатьBOM, а не Дописывать из файлового конструктора.
Поток = Новый ПотокВПамяти;
Запись = Неопределено;
Чтение = Неопределено;
Попытка
Запись = Новый ЗаписьТекста(Поток, КодировкаТекста.UTF8, Символы.ПС, Символы.ВК + Символы.ПС, Ложь);
Запись.Записать("Книга");
Запись.Закрыть();
Запись = Неопределено;
Поток.Перейти(0, ПозицияВПотоке.Начало);
Чтение = Новый ЧтениеТекста(Поток, КодировкаТекста.UTF8);
Текст = Чтение.Прочитать();
Чтение.Закрыть();
Чтение = Неопределено;
Сообщить(Текст);
Если Текст <> "Книга" Тогда
ВызватьИсключение "Текст не совпал";
КонецЕсли;
Данные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Поток = Неопределено;
Сообщить(Данные.Размер());
Исключение
Если Запись <> Неопределено Тогда
Запись.Закрыть();
КонецЕсли;
Если Чтение <> Неопределено Тогда
Чтение.Закрыть();
КонецЕсли;
Если Поток <> Неопределено Тогда
Поток.Закрыть();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;Разбор по шагам
Создаём поток памяти и записываем UTF-8 без BOM и без перевода строки.
Закрываем текстовую запись; поток остаётся отдельным объектом. Перемещаем его позицию на ноль.
ЧтениеТекста получает тот же поток и возвращает текст целиком.
ЗакрытьИПолучитьДвоичныеДанные завершает владение потоком и позволяет проверить количество байтов.
Как проверить результат
Вывод: Книга и размер 10 байтов.
Замените Ложь на Истина в конструкторе записи: UTF-8 BOM добавит три байта, ожидаемый размер станет 13.
Уберите Перейти: чтение начнётся в конце потока и исходный текст не получится.
Ожидаемый результат
Пять букв успешно прочитаны обратно; UTF-8 без BOM занимает десять байтов.
На что обратить внимание
Закрытие текстового чтения по потоку не закрывает сам поток: его жизненным циклом управляйте отдельно.
После ЗакрытьИПолучитьДвоичныеДанные нельзя повторно обращаться к закрытому потоку.
Не путайте перегрузки конструктора: пятый аргумент файлового и потокового вариантов имеет разный смысл.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.