En aquest tema, aprendrem com llegir i escriure fitxers utilitzant Node.js. Aquestes operacions són fonamentals per a moltes aplicacions, ja que permeten la manipulació de dades emmagatzemades en el sistema de fitxers.

Objectius

  • Entendre com utilitzar el mòdul fs per a operacions de lectura i escriptura de fitxers.
  • Aprendre a gestionar errors durant aquestes operacions.
  • Realitzar operacions de lectura i escriptura de manera síncrona i asíncrona.

Mòdul fs

Node.js proporciona el mòdul fs (file system) per treballar amb el sistema de fitxers. Aquest mòdul inclou mètodes per llegir, escriure, actualitzar i eliminar fitxers.

Importar el mòdul fs

const fs = require('fs');

Llegir Fitxers

Lectura Asíncrona

La lectura asíncrona és preferible en la majoria dels casos perquè no bloqueja el fil principal de l'aplicació.

fs.readFile('path/al/fitxer.txt', 'utf8', (err, data) => {
  if (err) {
    console.error('Error llegint el fitxer:', err);
    return;
  }
  console.log('Contingut del fitxer:', data);
});

Explicació del Codi

  • fs.readFile: Mètode per llegir fitxers de manera asíncrona.
  • 'path/al/fitxer.txt': Ruta del fitxer a llegir.
  • 'utf8': Codificació del fitxer.
  • callback: Funció que s'executa després de la lectura del fitxer. Rep dos paràmetres: err (error) i data (contingut del fitxer).

Lectura Síncrona

La lectura síncrona bloqueja el fil principal fins que l'operació es completa. És útil en scripts petits o quan la lectura ha de ser immediata.

try {
  const data = fs.readFileSync('path/al/fitxer.txt', 'utf8');
  console.log('Contingut del fitxer:', data);
} catch (err) {
  console.error('Error llegint el fitxer:', err);
}

Explicació del Codi

  • fs.readFileSync: Mètode per llegir fitxers de manera síncrona.
  • try...catch: Bloc per gestionar errors durant la lectura.

Escriure Fitxers

Escriptura Asíncrona

const contingut = 'Aquest és el contingut a escriure en el fitxer.';

fs.writeFile('path/al/fitxer.txt', contingut, 'utf8', (err) => {
  if (err) {
    console.error('Error escrivint el fitxer:', err);
    return;
  }
  console.log('Fitxer escrit correctament.');
});

Explicació del Codi

  • fs.writeFile: Mètode per escriure fitxers de manera asíncrona.
  • 'path/al/fitxer.txt': Ruta del fitxer a escriure.
  • contingut: Contingut a escriure en el fitxer.
  • 'utf8': Codificació del fitxer.
  • callback: Funció que s'executa després de l'escriptura del fitxer. Rep un paràmetre err (error).

Escriptura Síncrona

const contingut = 'Aquest és el contingut a escriure en el fitxer.';

try {
  fs.writeFileSync('path/al/fitxer.txt', contingut, 'utf8');
  console.log('Fitxer escrit correctament.');
} catch (err) {
  console.error('Error escrivint el fitxer:', err);
}

Explicació del Codi

  • fs.writeFileSync: Mètode per escriure fitxers de manera síncrona.
  • try...catch: Bloc per gestionar errors durant l'escriptura.

Exercicis Pràctics

Exercici 1: Llegir un Fitxer

  1. Crea un fitxer anomenat exemple.txt amb el contingut següent:
    Hola, món!
    
  2. Escriu un programa en Node.js que llegeixi el contingut de exemple.txt i el mostri per consola.

Solució

const fs = require('fs');

fs.readFile('exemple.txt', 'utf8', (err, data) => {
  if (err) {
    console.error('Error llegint el fitxer:', err);
    return;
  }
  console.log('Contingut del fitxer:', data);
});

Exercici 2: Escriure en un Fitxer

  1. Escriu un programa en Node.js que escrigui el text "Node.js és genial!" en un fitxer anomenat sortida.txt.

Solució

const fs = require('fs');
const contingut = 'Node.js és genial!';

fs.writeFile('sortida.txt', contingut, 'utf8', (err) => {
  if (err) {
    console.error('Error escrivint el fitxer:', err);
    return;
  }
  console.log('Fitxer escrit correctament.');
});

Resum

En aquesta secció, hem après com llegir i escriure fitxers utilitzant el mòdul fs de Node.js. Hem vist com realitzar aquestes operacions de manera síncrona i asíncrona, i hem practicat amb alguns exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar al següent tema, on explorarem com treballar amb streams en Node.js.

Curs de Node.js

Mòdul 1: Introducció a Node.js

Mòdul 2: Conceptes Bàsics

Mòdul 3: Sistema de Fitxers i I/O

Mòdul 4: HTTP i Servidors Web

Mòdul 5: NPM i Gestió de Paquets

Mòdul 6: Framework Express.js

Mòdul 7: Bases de Dades i ORMs

Mòdul 8: Autenticació i Autorització

Mòdul 9: Proves i Depuració

Mòdul 10: Temes Avançats

Mòdul 11: Desplegament i DevOps

Mòdul 12: Projectes del Món Real

© Copyright 2024. Tots els drets reservats