Arbeiten mit dem Dateisystem in TypeScript: Vollständiger Leitfaden

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in die Arbeit mit dem Dateisystem in TypeScript



Die Arbeit mit dem Dateisystem ist eine der Kernaufgaben bei der Entwicklung von Serveranwendungen, Dienstprogrammen und Befehlszeilentools. TypeScript, als Erweiterung von JavaScript, bietet alle Möglichkeiten von Node.js für die Interaktion mit Dateien und Verzeichnissen, fügt jedoch eine strenge Typisierung hinzu, was den Code zuverlässiger und vorhersagbarer macht.



In diesem Artikel werden wir uns detailliert ansehen, wie man mit dem Dateisystem in TypeScript arbeitet: von grundlegenden Lese- und Schreiboperationen bis hin zu fortgeschrittenen Techniken wie der Arbeit mit Streams und asynchroner Verarbeitung. Alle Beispiele werden von fertigem Code begleitet, den Sie sofort in Ihren Projekten verwenden können.



Für die Arbeit mit dem Dateisystem in TypeScript wird das integrierte Modul fs (file system) aus Node.js verwendet. Es bietet sowohl synchrone als auch asynchrone Methoden. In modernen Projekten wird empfohlen, die asynchronen Versionen mit Promises (fs.promises) für eine nicht-blockierende Ausführung zu verwenden.



1. Projekteinrichtung und Import von Modulen



Bevor Sie beginnen, stellen Sie sicher, dass Ihr Projekt für die Arbeit mit Node.js und TypeScript eingerichtet ist. Erstellen Sie ein Projektverzeichnis und initialisieren Sie es:



mkdir fs-typescript-tutorialcd fs-typescript-tutorialnpm init -ynpm install typescript @types/node --save-devnpx tsc --init


Stellen Sie nach der Einrichtung in der Datei tsconfig.json sicher, dass der Parameter module auf commonjs oder ESNext und target auf ES2020 oder höher gesetzt ist.



Jetzt erstellen wir eine Datei index.ts und importieren die notwendigen Module:



import * as fs from 'fs';import * as path from 'path';

// Oder verwenden Sie die promises-Versionimport { promises as fsPromises } from 'fs';


Das Modul path ist ebenfalls wichtig: Es bietet Dienstprogramme für die Arbeit mit Dateipfaden, was den Code plattformunabhängig macht (Windows vs Unix).



2. Lesen und Schreiben von Dateien



2.1 Datei lesen



Betrachten wir grundlegende Operationen mit Dateien. Beginnen wir mit dem Lesen des Inhalts einer Datei. Der asynchrone Ansatz mit async/await ist die modernste und bequemste Methode.



import { promises as fs } from 'fs';

async function readFileExample(filePath: string): Promise<string> { try { const data = await fs.readFile(filePath, 'utf-8'); return data; } catch (error) { console.error('Fehler beim Lesen der Datei:', error); throw error; }}

// Verwendungasync function main() { const content = await readFileExample('./example.txt'); console.log('Dateiinhalt:', content);}

main();


Die Methode readFile nimmt den Pfad zur Datei und eine optionale Kodierung entgegen (standardmäßig null – gibt Buffer zurück). Wenn 'utf-8' angegeben wird, wird ein String zurückgegeben.



2.2 In Datei schreiben



Das Schreiben von Daten in eine Datei erfolgt mit writeFile. Wenn die Datei nicht existiert, wird sie erstellt. Wenn sie existiert, wird sie überschrieben.



import { promises as fs } from 'fs';

async function writeFileExample(filePath: string, data: string): Promise<void> { try { await fs.writeFile(filePath, data, 'utf-8'); console.log('Datei erfolgreich geschrieben'); } catch (error) { console.error('Fehler beim Schreiben der Datei:', error); throw error; }}

// Anhängen an das Ende der Datei (append)async function appendFileExample(filePath: string, data: string): Promise<void> { try { await fs.appendFile(filePath, data + '', 'utf-8'); console.log('Daten an das Ende der Datei angehängt'); } catch (error) { console.error('Fehler beim Anhängen der Daten:', error); throw error; }}


2.3 Arbeiten mit JSON-Dateien



Häufig müssen in Anwendungen Daten im JSON-Format gespeichert und geladen werden. Hier ist ein praktischer Wrapper:

Blogs

Buchempfehlungen