Перейти к основному содержимому

ЧтениеДанных

Стд::ВводВывод::ЧтениеДанных Доступность: Сервер

Предназначен для чтения данных из потока.

Сравнение ссылочное

Иерархия типа

Базовые типы: Объект


Примеры

Построчное чтение текстового файла

строка1
строка2
строка3
метод ПрочитатьСтрокиИзФайла(): Массив<Строка>
пер Строки: Массив<Строка>
// Существующий файл text.txt в домашнем каталоге, откуда будет выполняться чтение строк
знч Файл = новый Файл("text.txt", Файлы.ПолучитьДомашнийКаталог())

// Поток чтения будет закрыт автоматически, так как объявлен через "исп"
исп ПотокЧтения = Файл.ОткрытьПотокЧтения()
знч ЧтениеДанных = новый ЧтениеДанных(ПотокЧтения)

пока не ЧтениеДанных.ЧтениеЗавершено()
// Чтение строки до разделителя по умолчанию
знч Строка = ЧтениеДанных.ПрочитатьСтроку()
Строки.Добавить(Строка)
;

возврат Строки
;
[строка1, строка2, строка3]

Чтение двоичных данныx

метод ЗаписатьИПрочитатьДвоичныеДанные()
знч Файл = новый Файл("data.bin", Файлы.ПолучитьДомашнийКаталог())

// Поток записи в файл data.bin
исп ПотокЗаписи = Файл.ОткрытьПотокЗаписи()
знч ЗаписьДанных = новый ЗаписьДанных(ПотокЗаписи)

ЗаписьДанных.ЗаписатьБайт(255)
ЗаписьДанных.Записать(Байты{74657374}) // строка test, 4 байта
ЗаписьДанных.ЗаписатьЦелое16(-32767)

попытка
ЗаписьДанных.ЗаписатьЦелое16(32768)
поймать И: ИсключениеНедопустимыйАргумент
// Значение числового параметра выходит за рамки диапазона допустимых значений
;

ЗаписьДанных.ЗаписатьЦелое32(2147483647)
ЗаписьДанных.ЗаписатьЦелое64(9223372036854775807)

// Явное закрытие потока записи, чтобы далее прочитать данные
ПотокЗаписи.Закрыть()

// Поток чтения файла data.bin, будет закрыт автоматически, так как объявлен через "исп"
исп ПотокЧтения = Файл.ОткрытьПотокЧтения()
знч ЧтениеДанных = новый ЧтениеДанных(ПотокЧтения)

пер Байт = ЧтениеДанных.ПрочитатьБайт() // 255
пер Байты = ЧтениеДанных.Прочитать(4).ПолучитьБайты() // 74657374
пер Целое16 = ЧтениеДанных.ПрочитатьЦелое16() // -32767
пер Целое32 = ЧтениеДанных.ПрочитатьЦелое32() // 2147483647
пер Целое64 = ЧтениеДанных.ПрочитатьЦелое64() // 9223372036854775807
;

Чтение текстового файла с разделителем

значение1;значение2;значение3
значение4;значение5;значение6

метод ПрочитатьФайлCsv(): Массив<Массив<Байты>>
пер СтрокиБайты: Массив<Массив<Байты>>
пер ЗначенияБайты: Массив<Байты>

// Текстовый файл с разделителем, откуда будет выполняться чтение
знч Файл = новый Файл("test.csv", Файлы.ПолучитьДомашнийКаталог())

// Поток чтения будет закрыт автоматически, так как объявлен через "исп"
исп ПотокЧтения = Файл.ОткрытьПотокЧтения()
знч ЧтениеДанных = новый ЧтениеДанных(ПотокЧтения)

// Количество столбцов в строке
знч КоличествоСтолбцов = 3
// Номер текущего столбца
пер НомерСтолбца = 0

пока не ЧтениеДанных.ЧтениеЗавершено()
// Чтение сегмента данных до ";" или переноса строки
знч РезультатЧтения = ЧтениеДанных.ПрочитатьДо([";", "\в\н"])
НомерСтолбца += 1

// Добавление байтов в буфер данных строки
ЗначенияБайты.Добавить(РезультатЧтения.ПолучитьБайты())

если НомерСтолбца == КоличествоСтолбцов
// Добавление данных строки в результат
СтрокиБайты.Добавить(новый Массив<Байты>(ЗначенияБайты))
// Очистка буфера
ЗначенияБайты.Очистить()
// Очистка номера столбца, так как строка закончилась
НомерСтолбца = 0
;
;

возврат СтрокиБайты
;

Результат (байты представлены как строки):

[[значение1, значение2, значение3], [значение4, значение5, значение6]]

Конструкторы

ЧтениеДанных

Доступность: Сервер

ЧтениеДанных(Поток: ПотокЧтения)
Перегрузка:
ЧтениеДанных(Поток: ПотокЧтения, Настройки: НастройкиЧтенияДанных)

Конструктор чтения данных из потока Поток.


ЧтениеДанных

Доступность: Сервер

ЧтениеДанных(
Поток: ПотокЧтения,
Настройки: НастройкиЧтенияДанных)
Перегрузка:
ЧтениеДанных(Поток: ПотокЧтения)

Конструктор чтения данных из потока Поток с настройками Настройки.


Методы

Пропустить

Доступность: Сервер

Пропустить(Количество: Число? = Неопределено): Число

Пропускает при чтении указанное количество байтов Количество в потоке. Возвращает количество фактически пропущенных данных.


ПропуститьДо

Доступность: Сервер

ПропуститьДо(
Маркер: Строка|ЧитаемыйМассив<Строка>,
Кодировка: Кодировка|Строка|? = Неопределено
): Число

Пропускает при чтении двоичные данные до указанного маркера Маркер. Если кодировка Кодировка не задана, то используется из настроек. Возвращает количество фактически пропущенных данных.


Прочитать

Доступность: Сервер

Прочитать(Количество: Число? = Неопределено): РезультатЧтенияДанных

Выполняет чтение двоичных данных заданного размера Количество из потока в байты. Если размер не указан, будут прочитаны все данные до конца потока. Возвращает результат чтения.


ПрочитатьБайт

Доступность: Сервер

ПрочитатьБайт(): Число?

Выполняет чтение одного байта из потока данных. Возвращает прочитанный байт в виде числа. Если чтение не было выполнено по причине окончания данных в потоке, возвращается Неопределено.


ПрочитатьДо

Доступность: Сервер

ПрочитатьДо(
Маркер: Строка|ЧитаемыйМассив<Строка>,
Кодировка: Кодировка|Строка|? = Неопределено
): РезультатЧтенияДанных

Выполняет чтение двоичных данных до указанного маркера Маркер (или одного из маркеров) в потоке. Если кодировка Кодировка не задана, то используется из настроек. Возвращает результат чтения.


ПрочитатьСимволы

Доступность: Сервер

ПрочитатьСимволы(
Количество: Число? = Неопределено,
Кодировка: Кодировка|Строка|? = Неопределено
): Строка

Выполняет чтение заданного количества символов Количество из потока в виде строки в кодировке Кодировка. Если количество символов не задано или задано и превышает количество символов в потоке, выполняется чтение всего остатка потока.


ПрочитатьСтроку

Доступность: Сервер

ПрочитатьСтроку(
Кодировка: Кодировка|Строка|? = Неопределено,
РазделительСтрок: Строка|ЧитаемыйМассив<Строка>|? = Неопределено
): Строка

Выполняет чтение строки до разделителя строки РазделительСтрок в кодировке Кодировка. Если разделитель не найден, чтение выполняется до конца потока. Если кодировка или разделитель не заданы, то используются из настроек. Возвращает результат чтения.


ПрочитатьЦелое16

Доступность: Сервер

ПрочитатьЦелое16(ПорядокБайтов: ПорядокБайтов? = Неопределено): Число?

Считывает 16-битное целое число из потока. ПорядокБайтов - порядок байтов, используемый при чтении числа. Если не указан, то используется порядок байтов, указанный в настройках. Если чтение не было выполнено по причине окончания данных в потоке, возвращается Неопределено.


ПрочитатьЦелое32

Доступность: Сервер

ПрочитатьЦелое32(ПорядокБайтов: ПорядокБайтов? = Неопределено): Число?

Считывает 32-битное целое число из потока. ПорядокБайтов - порядок байтов, используемый при чтении числа. Если не указан, то используется порядок байтов, указанный в настройках. Если чтение не было выполнено по причине окончания данных в потоке, возвращается Неопределено.


ПрочитатьЦелое64

Доступность: Сервер

ПрочитатьЦелое64(ПорядокБайтов: ПорядокБайтов? = Неопределено): Число?

Считывает 64-битное целое число из потока. ПорядокБайтов - порядок байтов, используемый при чтении числа. Если не указан, то используется порядок байтов, указанный в настройках. Если чтение не было выполнено по причине окончания данных в потоке, возвращается Неопределено.


ЧтениеЗавершено

Доступность: Сервер

ЧтениеЗавершено(): Булево

Проверяет что во входном потоке больше нет данных для чтения.


Список унаследованных методов

Объект

ВСтроку, ПолучитьТип, Представление