156 votes

Lire un fichier texte à l'aide de Node.js ?

J'ai besoin de passer un fichier texte dans le terminal puis d'en lire les données, comment puis-je faire cela ?

 node server.js file.txt

Comment passer dans le chemin du terminal, comment lire ça de l'autre côté ?

65voto

Ronald Points 269

Usign fs avec node.

 var fs = require('fs');

try {  
    var data = fs.readFileSync('file.txt', 'utf8');
    console.log(data.toString());    
} catch(e) {
    console.log('Error:', e.stack);
}

9voto

Kris Roofe Points 13087

Vous pouvez utiliser readstream et pipe pour lire le fichier ligne par ligne sans lire tout le fichier en mémoire une seule fois.

 var fs = require('fs'),
    es = require('event-stream'),
    os = require('os');

var s = fs.createReadStream(path)
    .pipe(es.split())
    .pipe(es.mapSync(function(line) {
        //pause the readstream
        s.pause();
        console.log("line:", line);
        s.resume();
    })
    .on('error', function(err) {
        console.log('Error:', err);
    })
    .on('end', function() {
        console.log('Finish reading.');
    })
);

7voto

iamnotsam Points 1116

Je poste un exemple complet que j'ai enfin réussi à faire fonctionner. Ici je lis dans un fichier rooms/rooms.txt partir d'un script rooms/rooms.js

 var fs = require('fs');
var path = require('path');
var readStream = fs.createReadStream(path.join(__dirname, '../rooms') + '/rooms.txt', 'utf8');
let data = ''
readStream.on('data', function(chunk) {
    data += chunk;
}).on('end', function() {
    console.log(data);
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X