Sobes.tech
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() автоматически передает данные из одного потока в другой, что упрощает работу с потоками и повышает производительность при обработке больших данных.