ПотокЧтения
Стд::ВводВывод::ПотокЧтения Базовые типы: Закрываемое, Объект |
Иерархия типа
graph BT;
ПотокЧтения-->Закрываемое;
Закрываемое-->Объект;
Однонаправленный поток чтения данных. Автоматически закрывается после достижения конца потока. После закрытия методы чтения выбрасывают исключение ИсключениеВводаВывода.
Сравнение ссылочное
Примеры
метод СоздатьИПрочитатьПотокЧтения()
исп ПотокИзБайтов = ПотокЧтения.ИзБайтов(Байты{74657374})
пер Строка = ПотокИзБайтов.ПрочитатьКакСтроку() // test
попытка
ПотокИзБайтов.ПрочитатьКакСтроку()
поймать И: ИсключениеВводаВывода
// обработка исключения, так как поток уже закрыт
;
исп ПотокИзСтроки = ПотокЧтения.ИзСтроки("test")
пер Байты = ПотокИзСтроки.ПрочитатьКакБайты() // 74657374
;
метод СоздатьИСкопироватьПотокЧтения()
исп ПотокЧтения = ПотокЧтения.ИзБайтов(Байты{7465737461}) // 5 байтов
исп ПотокЗаписи = новый ВременныйПотокЗаписи()
// Копирование из потока чтения в поток записи по 2 байта
пока ПотокЧтения.КопироватьВ(ПотокЗаписи, 2) > 0
// 3 итерации
;
знч РазмерПотокаЗаписи = ПотокЗаписи.Размер() // 5 байтов
знч Байты = ПотокЗаписи.ОткрытьПотокЧтения().ПрочитатьКакБайты() // 7465737461
;
метод СоздатьПотокЧтенияИСкопироватьВФайл()
пер Файл = Файлы.Создать(новый Файл("КопированиеПотокаЧтения.txt", Файлы.ПолучитьДомашнийКаталог()))
исп ПотокЧтения1 = ПотокЧтения.ИзСтроки("test1")
// Копирование из потока чтения в файл по 2 байта
пока ПотокЧтения1.КопироватьВФайл(Файл, Истина, 2) > 0
// 3 итерации
;
// Содержимое файла = test1
исп ПотокЧтения2 = ПотокЧтения.ИзСтроки("test2")
ПотокЧтения2.КопироватьВФайл(Файл, Истина)
// Содержимое файла = test1test2
исп ПотокЧтения3 = ПотокЧтения.ИзСтроки("test3")
ПотокЧтения3.КопироватьВФайл(Файл, Ложь)
// Содержимое файла = test3
;
Методы
Закрыть
Закрыть()
Переопределение: Закрыть |
Закрывает поток. Повторный вызов ничего не делает.
ИзБайтов
Статический ИзБайтов(Данные: Байты): ПотокЧтения
Возвращает новый поток содержащий данные, переданные в Данные
.
ИзСтроки
Статический ИзСтроки(
Данные: Строка,
Кодировка: Кодировка|Строка = Кодировка.Utf8
): ПотокЧтения
Возвращает новый поток содержащий данные, переданные в строке Данные
, которые интерпретируюся в зависимости от кодировки Кодировка
.
КопироватьВ
КопироватьВ(
ПотокЗаписи: ПотокЗаписи,
Количество: Число? = Неопределено
): Число
Копирует заданное количество байтов Количество
из текущего потока в целевой поток ПотокЗаписи
. Возвращает фактически записанное количество байтов.
КопироватьВФайл
Копирует заданное количество байтов Количество
из текущего потока в целевой файл Файл
. ЗаписатьВКонец
- способ записи:
Истина
- запись добавляется в существующий файл,Ложь
- содержимое файла удаляется, поток будет записан в начало.
Возвращает фактически записанное количество байтов.
ПрочитатьКакБайты
ПрочитатьКакБайты(): Байты
Возвращает содержимое потока как байты и закрывает поток.
ПрочитатьКакСтроку
Возвращает содержимое потока как строку, используя кодировку Кодировка
, а затем закрывает поток.