ЧтениеДанных
Стд::ВводВывод::ЧтениеДанных
Предназначен для чтения данных из потока.
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Объект
Примеры
Общие приме ры
Построчное чтение текстового файла
строка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]]
Конструкторы
ЧтениеДанных
ЧтениеДанных(Поток: ПотокЧтения)Поток.
Перегрузка
ЧтениеДанных(Поток: ПотокЧтения, Настройки: НастройкиЧтенияДанных)
ЧтениеДанных
ЧтениеДанных(
Поток: ПотокЧтения,
Настройки: НастройкиЧтенияДанных)Поток с настройками Настройки.
Перегрузка
ЧтениеДанных(Поток: ПотокЧтения)
Методы
Пропустить
Пропускает при чтении указанное количество байтовКоличество в потоке.
Возвращает количество фактически пропущенных данных.
ПропуститьДо
Пропускает при чтении двоичные данные до указанного маркера
Маркер.
Если кодировка Кодировка не задана, то используется из настроек.
Возвращает количество фактически пропущенных данных.
Прочитать
Прочитать(Количество: Число? = Неопределено): РезультатЧтенияДанныхКоличество из потока в байты.
Если размер не указан, будут прочитаны все данные до конца потока.
Возвращает результат чтения.
ПрочитатьБайт
ПрочитатьБайт(): Число?Неопределено.
ReadCharacters(Count:Number?,Encoding:Encoding|String|?):String
ПрочитатьДо
ПрочитатьДо(
Маркер: Строка|ЧитаемыйМассив<Строка>,
Кодировка: Кодировка|Строка|? = Неопределено
): РезультатЧтенияДанныхМаркер (или одного из маркеров) в потоке.
Если кодировка Кодировка не задана, то используется из настроек.
Возвращает результат чтения.