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!
Mestre em Sistemas de Informação pela USP e criador do DevPleno. Iniciou sua carreira como professor com apenas 18 anos em um curso técnico, foram 11 anos em sala de aula formando desenvolvedores fullstack no sul de Minas Gerais.