Открывает поток для чтения. Аналогичен методу Открыть. Метод Закрыть при использовании данного конструктора не выполняет никаких действий.
Синтаксис
Новый ЧтениеТекста(<Поток>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>)Примеры платформы
ДлинныйТекст = Новый ЧтениеТекста("c:\temp\file.txt", КодировкаТекста.UTF16);Полное описание, параметры и ограничения
ЧтениеТекста.На основании потока
ЧтениеТекста (TextReader)
На основании потока
Доступен, начиная с версии 8.3.10.
Синтаксис:
Новый ЧтениеТекста(<Поток>, <Кодировка>, <РазделительСтрок>, <КонвертируемыйРазделительСтрок>)
Параметры:
<Поток> (обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для чтения текста.
<Кодировка> (необязательный)
Тип: КодировкаТекста, Строка.
Определяет кодировку текста читаемого потока (согласован с текстовым документом). Если параметр не задан, формат текста будет определен автоматически по сигнатуре BOM в начале файла; если сигнатура BOM в файле отсутствует, файл будет открыт в кодировке ANSI.
Кодировка может быть задана как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые названия кодировок:
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
.
<РазделительСтрок> (необязательный)
Тип: Строка.
Определяет строку, разделяющую строки в текстовом файле.
Значение по умолчанию: ПС.
<КонвертируемыйРазделительСтрок> (необязательный)
Тип: Строка.
Определяет разделение строк в файле для конвертации в стандартный перевод строк ПС.
Значение по умолчанию: ВК + ПС.
Описание:
Открывает поток для чтения. Аналогичен методу Открыть.
Метод Закрыть при использовании данного конструктора не выполняет никаких действий.
Пример:
ДлинныйТекст = Новый ЧтениеТекста("c:\temp\file.txt", КодировкаТекста.UTF16);
См. также:
ЧтениеТекста, метод Открыть
Использование в версии:
Доступен, начиная с версии 8.3.10.
Методическая информация
Практические примеры
Записать и прочитать UTF-8 в потоке памяти
Обмен текстом без файла: запись в ПотокВПамяти, позиционирование в начало и чтение через ЧтениеТекста.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Внешние файлы и настройки конфигурации не нужны.
Используйте конструктор по потоку; его пятый параметр — ЗаписатьBOM, а не Дописывать из файлового конструктора.
Поток = Новый ПотокВПамяти;
Запись = Неопределено;
Чтение = Неопределено;
Попытка
Запись = Новый ЗаписьТекста(Поток, КодировкаТекста.UTF8, Символы.ПС, Символы.ВК + Символы.ПС, Ложь);
Запись.Записать("Книга");
Запись.Закрыть();
Запись = Неопределено;
Поток.Перейти(0, ПозицияВПотоке.Начало);
Чтение = Новый ЧтениеТекста(Поток, КодировкаТекста.UTF8);
Текст = Чтение.Прочитать();
Чтение.Закрыть();
Чтение = Неопределено;
Сообщить(Текст);
Если Текст <> "Книга" Тогда
ВызватьИсключение "Текст не совпал";
КонецЕсли;
Данные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Поток = Неопределено;
Сообщить(Данные.Размер());
Исключение
Если Запись <> Неопределено Тогда
Запись.Закрыть();
КонецЕсли;
Если Чтение <> Неопределено Тогда
Чтение.Закрыть();
КонецЕсли;
Если Поток <> Неопределено Тогда
Поток.Закрыть();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;Разбор по шагам
Создаём поток памяти и записываем UTF-8 без BOM и без перевода строки.
Закрываем текстовую запись; поток остаётся отдельным объектом. Перемещаем его позицию на ноль.
ЧтениеТекста получает тот же поток и возвращает текст целиком.
ЗакрытьИПолучитьДвоичныеДанные завершает владение потоком и позволяет проверить количество байтов.
Как проверить результат
Вывод: Книга и размер 10 байтов.
Замените Ложь на Истина в конструкторе записи: UTF-8 BOM добавит три байта, ожидаемый размер станет 13.
Уберите Перейти: чтение начнётся в конце потока и исходный текст не получится.
Ожидаемый результат
Пять букв успешно прочитаны обратно; UTF-8 без BOM занимает десять байтов.
На что обратить внимание
Закрытие текстового чтения по потоку не закрывает сам поток: его жизненным циклом управляйте отдельно.
После ЗакрытьИПолучитьДвоичныеДанные нельзя повторно обращаться к закрытому потоку.
Не путайте перегрузки конструктора: пятый аргумент файлового и потокового вариантов имеет разный смысл.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.