La lecture de fichiers volumineux, une ligne à la fois, peut être cruciale dans divers scénarios, notamment lorsque la consommation de mémoire est un problème. Node.js propose plusieurs approches pour y parvenir efficacement.
À partir de Node.js v0.12, le module principal readline fournit une solution stable à cet effet. Voici comment vous pouvez l'utiliser :
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 }); for await (const line of rl) { console.log(`Line from file: ${line}`); } } processLineByLine();
Ce code crée un flux de lecture à partir du fichier spécifié, puis utilise l'interface readline pour parcourir le fichier, en imprimant chaque ligne sur la console.
Si vous utilisez une ancienne version de Node.js, vous pouvez envisager d'utiliser un module tiers comme un lecteur de ligne. Voici un exemple :
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'); });
Ce code utilise le module line-reader pour créer une interface de lecteur de ligne, qui est ensuite utilisée pour écouter l'événement 'line'. Chaque fois qu'une ligne est lue dans le fichier, le gestionnaire d'événements est déclenché, imprimant la ligne sur la console.
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!