# Метод createReadStream

Метод `createReadStream` открывает поток для чтения данных файла. В первом параметре метода задаем путь к файлу, который мы хотим прочитать. Путь к файлу может принимать значения в виде строки или буфера. Во втором необязательном параметре указываем объект с опциями.В третьем параметре указываем коллбэк.

## Синтаксис

`fs.createReadStream(путь к файлу, [опции], коллбэк);`

## Объект с опциями

Опция | Описание
--- | ---
`flags` | Задают режим для чтения файла. По умолчанию его значение `'r'` - только для чтения.
`encoding` | Режим кодировки данных. Значение по умолчанию `null`.
`start` | Позиция откуда начинается чтение данных файла.
`end` | Позиция, на которой заканчивается чтение данных файла.
`highWaterMark` | Определяет объем данных, которые буферизует поток, прежде чем он перестанет запрашивать дополнительные данные. Значение по умолчанию `64 * 1024`.
`fd` | Файловый дескриптор. Значение по умолчанию `null`.
`mode` | Режим доступа. Значение по умолчанию `0o666`.
`autoClose` | Автоматическое закрытие дескриптора файла после остановки потока. Значение по умолчанию `true`.
`emitClose` | Генерация закрытия потока. Значение по умолчанию `true`.
`fs` | Реализует опции для открытия, чтения и закрытия файла. Значение по умолчанию `null`.
`signal` | Время, по прошествии которого будет прекращена обработка потока данных. Значение по умолчанию `null`.

## Пример

Давайте асинхронно откроем поток и прочитаем имеющиеся в файле данные через коллбэк:

`import fs from 'fs'; let stream = fs.createReadStream('file.txt'); stream.on('data', data => { console.log(data.toString()); });`

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

- метод `createWriteStream`,
  который открывает поток для записи данных
- метод `openSync`,
  который синхронно определяет файловый дескриптор

← →
↑