Code
import { readFile, writeFile, rename, mkdir } from 'node:fs/promises';
import { dirname } from 'node:path';
// Datei lesen – gibt null zurück, wenn sie nicht existiert
export const readText = async (path) => {
try {
return await readFile(path, 'utf8');
} catch (err) {
if (err.code === 'ENOENT') return null;
throw err;
}
};
// Atomar schreiben: erst in Temp-Datei, dann umbenennen
export const writeText = async (path, data) => {
await mkdir(dirname(path), { recursive: true });
const tmp = `${path}.${process.pid}.tmp`;
await writeFile(tmp, data, 'utf8');
await rename(tmp, path);
};
// Verwendung (ESM, top-level await)
await writeText('./data/notes.txt', 'Erste Zeile\n');
const content = await readText('./data/notes.txt');
console.log(content);
Häufige Fragen
Darf ich dieses Snippet kopieren und produktiv einsetzen?
Ja — alle Code-Beispiele auf programmierung.net dürfen frei kopiert und angepasst werden. Prüfe vor dem Produktiv-Einsatz immer Edge-Cases (leere Eingaben, Encoding, Fehlerbehandlung) und die Lizenzvorgaben eingebundener Bibliotheken.
Welche JavaScript-Version wird vorausgesetzt?
Snippets zielen auf aktuelle, stabile JavaScript-Versionen. Versionsabhängige Features werden im Code oder in der Beschreibung ausgewiesen.
Wo finde ich weitere JavaScript-Snippets?
In der Seitenleiste siehst du alle Snippets dieser Sprache. Oder gehe zur JavaScript-Übersicht.