Neste hands-on, vamos ver como conseguimos utilizar o readline em conjunto com Readable Stream para ler linhas de um arquivo texto.
Como faremos isso?
Primeiramente vamos importar o headline (que já faz parte do core do node) e o FS (file System). Em seguida, vamos ler o arquivo com o readable.
const readline = require('readline')
const fs = require('fs')
const readable = sf.createReadStream('arquivo.html')
Vamos criar uma instancia do readline e no imput vamos passar o readable
const rl = readline.creatInterface({
input: readable,
output: process.stdout
})
Mas para que isso serve?
Isso é legal, pois podemos fazer assim por exemplo: rl
.on('line', (line) => {
console.log('>>>', line)
})
Se rodarmos este código, o node vai mostrar o HTML inteiro linha a linha.
Para provar realmente que ele esta fazendo isso, podemos fazer o seguinte:
rl.on('line', (line) => {
console.log('>>>', line.toUpperCase())
})
Então o node retornará tudo em maiúsculo. Neste código, também podemos ler um CSV, bastaria eu processar a linha do CSV dentro do console.log e temos uma forma de rodar o arquivo sem precisar gastar muita memória.
Conclusão
Quando temos muitos dados, não é necessário jogar na memória. Utilizando essa forma, a leitura vai ser bem mais vantajosa.
Confira o video:
Curta o
DevPleno no Facebook,
inscreva-se no canal e não se esqueça de cadastrar seu e-mail para não perder as novidades. Ah, fique à vontade para deixar suas dúvidas e sugestões nos comentários. Abraço!