Lecture de fichiers avec Node.js
La manière la plus simple de lire un fichier dans Node.js est d'utiliser la méthode fs.readFile()
, en lui passant le chemin du fichier, l'encodage et une fonction de rappel qui sera appelée avec les données du fichier (et l'erreur) :
const fs = require('node:fs')
fs.readFile('/Users/joe/test.txt', 'utf8', (err, data) => {
if (err) {
console.error(err)
return
}
console.log(data)
})
Alternativement, vous pouvez utiliser la version synchrone fs.readFileSync()
:
const fs = require('node:fs')
try {
const data = fs.readFileSync('/Users/joe/test.txt', 'utf8')
console.log(data)
} catch (err) {
console.error(err)
}
Vous pouvez également utiliser la méthode fsPromises.readFile()
basée sur les promesses, offerte par le module fs/promises
:
const fs = require('node:fs/promises')
async function example() {
try {
const data = await fs.readFile('/Users/joe/test.txt', { encoding: 'utf8' })
console.log(data)
} catch (err) {
console.log(err)
}
}
example()
Les trois méthodes fs.readFile()
, fs.readFileSync()
et fsPromises.readFile()
lisent le contenu complet du fichier en mémoire avant de renvoyer les données.
Cela signifie que les gros fichiers auront un impact majeur sur la consommation de mémoire et la vitesse d'exécution du programme.
Dans ce cas, une meilleure option est de lire le contenu du fichier à l'aide de flux.