La capacidad de leer un archivo línea por línea nos permite leer archivos grandes sin almacenarlos por completo en la memoria. Es útil para ahorrar recursos y mejora la eficiencia de la aplicación. Nos permite buscar la información que se requiere y una vez que se encuentra la información relevante, podemos detener el proceso de búsqueda y evitar el uso no deseado de la memoria.
Alcanzaremos el objetivo utilizando el módulo Readline y el módulo Line-Reader.
Método 1: usar el módulo Readline: Readline es un módulo nativo de Node.js, fue desarrollado específicamente para leer el contenido línea por línea desde cualquier flujo legible. Se puede utilizar para leer datos desde la línea de comandos.
Dado que el módulo es el módulo nativo de Node.js, no requiere ninguna instalación y se puede importar como
const readline = require('readline');
Dado que el módulo readline solo funciona con flujos legibles, primero debemos crear un flujo legible usando el módulo fs.
const file = readline.createInterface({ input: fs.createReadStream('source_to_file'), output: process.stdout, terminal: false });
Ahora, escuche el evento de línea en el objeto de archivo. El evento se activará cada vez que se lea una nueva línea de la secuencia:
file.on('line', (line) => { console.log(line); });
Ejemplo:
// Importing the Required Modules const fs = require('fs'); const readline = require('readline'); // Creating a readable stream from file // readline module reads line by line // but from a readable stream only. const file = readline.createInterface({ input: fs.createReadStream('gfg.txt'), output: process.stdout, terminal: false }); // Printing the content of file line by // line to console by listening on the // line event which will triggered // whenever a new line is read from // the stream file.on('line', (line) => { console.log(line); });
Producción:
Método 2: uso del módulo de lector de línea: el módulo de lector de línea es un módulo de código abierto para leer archivos línea por línea en Node.js. No es el módulo nativo, por lo que debe instalarlo usando npm (Node Package Manager) usando el comando:
npm install line-reader --save
El módulo lector de línea proporciona el método eachLine() que lee el archivo línea por línea. Tenía una función de devolución de llamada que tenía dos argumentos: el contenido de la línea y un valor booleano que almacena, si la línea leída, era la última línea del archivo.
const lineReader = require('line-reader'); lineReader.eachLine('source-to-file', (line, last) => { console.log(line); });
Ejemplo:
// Importing required libraries const lineReader = require('line-reader'); // eachLine() method call on gfg.txt // It got a callback function // Printing content of file line by line // on the console lineReader.eachLine('gfg.txt', (line, last) => { console.log(line); });
Producción:
Publicación traducida automáticamente
Artículo escrito por sumit_tyagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA