Saltar al contenido

¿Leer un archivo una línea a la vez en node.js?

Verificamos de forma profundamente cada reseñas de nuestro sitio web con la meta de mostrarte en todo momento la información más veraz y actualizada.

Solución:

Desde Node.js v0.12 y a partir de Node.js v4.0.0, existe un módulo central readline estable. Esta es la forma más fácil de leer líneas de un archivo, sin ningún módulo externo:

const fs = require('fs');
const readline = require('readline');

async function processLineByLine() 
  const fileStream = fs.createReadStream('input.txt');

  const rl = readline.createInterface(
    input: fileStream,
    crlfDelay: Infinity
  );
  // Note: we use the crlfDelay option to recognize all instances of CR LF
  // ('rn') in input.txt as a single line break.

  for (const line of rl) 
    // Each line in input.txt will be successively available here as `line`.
    console.log(`Line from file: $line`);
  


processLineByLine();

O alternativamente:

var lineReader = require('readline').createInterface(
  input: require('fs').createReadStream('file.in')
);

lineReader.on('line', function (line) 
  console.log('Line from file:', line);
);

La última línea se lee correctamente (a partir de Node v0.12 o posterior), incluso si no hay final n.

ACTUALIZAR: este ejemplo se ha agregado a la documentación oficial de la API de Node.

Para una operación tan simple, no debería haber ninguna dependencia de módulos de terceros. Con calma.

var fs = require('fs'),
    readline = require('readline');

var rd = readline.createInterface(
    input: fs.createReadStream('/path/to/file'),
    output: process.stdout,
    console: false
);

rd.on('line', function(line) 
    console.log(line);
);

no tienes que hacerlo open el archivo, pero en su lugar, debe crear un ReadStream.

fs.createReadStream

Luego pasa ese flujo a Lazy

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *