Iniciante Fundamentos

Streams

Streams (fluxos) permitem ler ou escrever dados em pedaços, sem carregar tudo na memória de uma vez. São ideais para arquivos grandes e transferências de rede.

Tipos de stream

  • Readable: para leitura (ex.: ler um arquivo).
  • Writable: para escrita (ex.: gravar um arquivo).
  • Duplex e Transform: leem e escrevem.

Ler com stream

Em vez de carregar o arquivo inteiro, lemos por partes:

const fs = require("fs");

const leitura = fs.createReadStream("grande.txt", "utf8");

leitura.on("data", (pedaco) => {
  console.log("Recebi um pedaço:", pedaco.length);
});

leitura.on("end", () => {
  console.log("Leitura concluída");
});

Escrever com stream

const fs = require("fs");

const escrita = fs.createWriteStream("saida.txt");
escrita.write("Primeira linha\n");
escrita.write("Segunda linha\n");
escrita.end();

O método pipe

O pipe conecta uma leitura a uma escrita, transferindo os dados automaticamente:

const fs = require("fs");

fs.createReadStream("origem.txt")
  .pipe(fs.createWriteStream("copia.txt"));