Junior — Middle
¿Puedes explicar qué es un flujo de datos (Stream) en Node.js y cómo se utiliza?
sobes.tech AI
Respuesta de la IA
В Node.js поток данных (Stream) — это абстракция для работы с последовательными данными, которые поступают или отправляются частями, а не целиком. Это позволяет эффективно обрабатывать большие объемы данных без необходимости загружать их полностью в память.
Существует четыре основных типа потоков:
- Readable (читаемые) — потоки, из которых можно читать данные (например, чтение файла).
- Writable (записываемые) — потоки, в которые можно записывать данные (например, запись в файл).
- Duplex — потоки, которые могут и читать, и писать (например, сетевые сокеты).
- Transform — разновидность Duplex, которая может изменять данные по пути (например, сжатие).
Пример использования читаемого потока для чтения файла и записи его содержимого в другой файл:
const fs = require('fs');
const readable = fs.createReadStream('input.txt');
const writable = fs.createWriteStream('output.txt');
readable.pipe(writable);
Метод pipe() автоматически передает данные из одного потока в другой, что упрощает работу с потоками и повышает производительность при обработке больших данных.