OUJOOD.COM
Ce tutoriel explore en détail le module fs (File System) de Node.js, essentiel pour interagir avec le système de fichiers.
Introduction
Le module fs de Node.js offre des fonctionnalités pour effectuer des opérations d'entrée/sortie (I/O) sur le système de fichiers. Il propose des méthodes synchrones et asynchrones. L'utilisation des méthodes asynchrones est fortement recommandée pour éviter de bloquer le thread principal, surtout lors de la manipulation de fichiers volumineux.
Importer le module fs
const fs = require('fs');
Lecture de fichiers (fs.readFile)
La méthode fs.readFile lit le contenu d'un fichier de manière asynchrone.
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error('Erreur de lecture:', err);
return;
}
console.log('Contenu:', data);
});
Explication : 'utf8' spécifie l'encodage du fichier. Sans cet argument, les données seront retournées sous forme de Buffer. L'utilisation d'une fonction de callback permet de gérer le résultat (data) ou une éventuelle erreur (err).
Écriture de fichiers (fs.writeFile)
fs.writeFile écrit des données dans un fichier. Si le fichier n'existe pas, il est créé. S'il existe, son contenu est écrasé.
fs.writeFile('output.txt', 'Texte à écrire dans le fichier.', (err) => {
if (err) throw err;
console.log('Fichier écrit avec succès.');
});
Ajout de contenu à un fichier (fs.appendFile)
Pour ajouter du contenu à un fichier existant sans l'écraser, utilisez fs.appendFile.
fs.appendFile('output.txt', '\nNouvelle ligne ajoutée.', (err) => {
if (err) throw err;
console.log('Contenu ajouté.');
});
Suppression de fichiers (fs.unlink)
fs.unlink supprime un fichier.
fs.unlink('output.txt', (err) => {
if (err) throw err;
console.log('Fichier supprimé.');
});
Renommage de fichiers (fs.rename)
fs.rename renomme un fichier.
fs.rename('ancien_nom.txt', 'nouveau_nom.txt', (err) => {
if (err) throw err;
console.log('Fichier renommé.');
});
Informations sur les fichiers (fs.stat)
fs.stat retourne des informations sur un fichier, comme sa taille, ses permissions, etc.
fs.stat('example.txt', (err, stats) => {
if (err) throw err;
console.log(stats);
console.log("Est un fichier : " + stats.isFile());
console.log("Est un répertoire : " + stats.isDirectory());
console.log("Taille du fichier : " + stats.size);
});
Méthodes Synchrones
Le module fs propose également des versions synchrones des méthodes précédentes (par exemple, fs.readFileSync, fs.writeFileSync). Elles bloquent l'exécution du code jusqu'à ce que l'opération soit terminée. À utiliser avec précaution dans les applications serveur.
const data = fs.readFileSync('example.txt', 'utf8');
console.log(data);