Dateien mit Node.js lesen
Der einfachste Weg, eine Datei in Node.js zu lesen, ist die Verwendung der Methode fs.readFile()
, indem man ihr den Dateipfad, die Kodierung und eine Callback-Funktion übergibt, die mit den Dateidaten (und dem Fehler) aufgerufen wird:
const fs = require('node:fs')
fs.readFile('/Users/joe/test.txt', 'utf8', (err, data) => {
if (err) {
console.error(err)
return
}
console.log(data)
})
Alternativ können Sie die synchrone Version fs.readFileSync()
verwenden:
const fs = require('node:fs')
try {
const data = fs.readFileSync('/Users/joe/test.txt', 'utf8')
console.log(data)
} catch (err) {
console.error(err)
}
Sie können auch die Promise-basierte Methode fsPromises.readFile()
verwenden, die vom Modul fs/promises
angeboten wird:
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()
Alle drei, fs.readFile()
, fs.readFileSync()
und fsPromises.readFile()
, lesen den gesamten Inhalt der Datei in den Speicher, bevor die Daten zurückgegeben werden.
Dies bedeutet, dass große Dateien einen großen Einfluss auf Ihren Speicherverbrauch und die Ausführungsgeschwindigkeit des Programms haben werden.
In diesem Fall ist es besser, den Dateiinhalt mit Streams zu lesen.