РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
644 of 723 menu

Метод openRead

Метод openRead класса File создает и возвращает поток Stream, который читает содержимое файла по частям (чанками). В первый параметр мы передаем начальную позицию чтения в байтах, во второй - конечную позицию (не включая ее). Если параметры не указаны, файл читается целиком с самого начала. Метод является асинхронным и возвращает Stream<List<int>>.

Синтаксис

file.openRead([int start, int end])

Пример

Давайте создадим файл и прочитаем его содержимое с помощью потока openRead:

import 'dart:io'; import 'dart:convert'; void main() async { File file = File('test.txt'); await file.writeAsString('abcde'); Stream<List<int>> stream = file.openRead(); String res = await stream.transform(utf8.decoder).join(); print(res); }

Результат выполнения кода:

"abcde"

Пример

Давайте прочитаем только часть файла, указав начальную и конечную позиции в байтах:

import 'dart:io'; import 'dart:convert'; void main() async { File file = File('test.txt'); await file.writeAsString('12345'); Stream<List<int>> stream = file.openRead(1, 4); String res = await stream.transform(utf8.decoder).join(); print(res); }

Результат выполнения кода:

"234"

Пример

Давайте обработаем поток по частям с помощью метода listen:

import 'dart:io'; import 'dart:convert'; void main() async { File file = File('test.txt'); await file.writeAsString('abcde'); Stream<List<int>> stream = file.openRead(); stream.transform(utf8.decoder).listen((chunk) { print(chunk); }); }

Результат выполнения кода:

"abcde"

Смотрите также

  • метод readAsString,
    который читает весь файл как строку
  • метод readAsBytes,
    который читает весь файл как байты
  • метод readAsLines,
    который читает файл как список строк
  • метод open,
    который открывает файл для чтения и записи
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить