Je n'ai jamais eu à faire cela auparavant, donc c'est probablement quelque chose de vraiment basique, mais je pensais demander quand même.
Quelle est la bonne manière de lire un fichier très volumineux en Node.js ? Disons que le fichier est trop volumineux pour être lu en une seule fois. Disons aussi que le fichier pourrait être sous forme de .zip
ou .tar.gz
.
Première question, est-il préférable de décompresser le fichier d'abord et de le sauvegarder sur le disque (je suis en train d'utiliser Stuffit sur Mac pour le faire maintenant), puis de travailler avec ce fichier ? Ou pouvez-vous lire le flux d'entrée/sortie directement à partir de la version compressée .zip
ou .tar.gz
? Je suppose que vous auriez besoin de connaître le format du contenu dans le fichier compressé, donc vous devriez probablement le décompresser (je viens de découvrir que ce fichier .tar.gz
est en fait un fichier .dat
)...
Ensuite, le problème principal est, comment puis-je lire ce gros fichier en Node.js ? Disons que c'est un fichier XML de 1 Go, où devrais-je chercher pour commencer à le parser ? (Non, comment parser du XML, mais si vous lisez le gros fichier ligne par ligne, comment parser quelque chose comme du XML qui a besoin de connaître le contexte des lignes précédentes).
J'ai vu fs.createReadStream
, mais j'ai peur de bidouiller avec ça... je ne veux pas faire exploser mon ordinateur. Je cherche juste quelques conseils dans la bonne direction.