Maison > interface Web > js tutoriel > Comment puis-je lire efficacement un fichier texte volumineux ligne par ligne dans Node.js ?

Comment puis-je lire efficacement un fichier texte volumineux ligne par ligne dans Node.js ?

Linda Hamilton
Libérer: 2024-12-07 02:35:15
original
935 Les gens l'ont consulté

How Can I Efficiently Read a Large Text File Line by Line in Node.js?

Lecture de fichiers texte ligne par ligne dans Node.js

Lecture d'un gros fichier texte une ligne à la fois dans Node.js peut être une opération cruciale pour traiter de vastes ensembles de données. Alors que la question que vous avez mentionnée sur Quora aborde la lecture depuis STDIN, cet article se concentre sur l'extension de ce concept à la lecture à partir d'un fichier texte.

L'approche initiale, impliquant fs.open, sert de base. L'étape manquante consiste à exploiter le module Lazy pour effectuer une lecture ligne par ligne à partir du descripteur de fichier ouvert. Cependant, depuis Node.js v0.12, il existe une solution plus robuste utilisant le module principal readline intégré.

Explorons deux approches utilisant readline :

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
  // ('\r\n') in input.txt as a single line break.

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

processLineByLine();
Copier après la connexion

Alternativement, vous peut utiliser :

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

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

lineReader.on('close', function () {
    console.log('all done, son');
});
Copier après la connexion

Les deux approches exploitent le module readline pour lire efficacement les lignes d'un fichier texte une par une. La dernière ligne est lue correctement (à partir de Node v0.12 ou version ultérieure), même s'il n'y a pas de saut de ligne final.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal