Aprire un file con open e File Descriptor - Modulo fs di NodeJS

Aprire un file con open e File Descriptor - Modulo fs di NodeJS

Per avere un maggior controllo sulla modifica dei file, la loro apertura, lettura ecc.. possiamo usare anche altri metodi.

indice

Il metodo open

Per aprire un file in modo asincrono possiamo usare open, ed in un secondo momento facendo le operazioni necessarie di lettura / scrittura.

Il metodo open prevede fino a 4 parametri

  • file: indica il file che vogliamo aprire (percorso + nome file)
  • flag di apertura (opzionale): indica se vogliamo aprire il file in lettura, scrittura o lettura + scrittura
  • mode : indica i permessi da assegnare al file (solo se il file non esiste cioè viene creato in fase di invocazione di open)
  • callback

Esempio con metodo Open

Vediamo come creare un file con il metodo open, inserire del contenuto al suo interno, gestire gli eventuali errori e chiudere il file dopo la scrittura.

metodo-open.js

const fs = require('fs');

fs.open('fileCreato.txt', 'w' , (err, fd) =>{
    fs.write(fd, 'Contenuto inserito' , 'utf8' , (err, written,str) => {
        console.log(err,written,str);
    });
    fs.close(fd, err =>{
        if(err) throw err;
    })
});

Spiegazione step by step:

const fs = require('fs');

Importiamo il modulo nativo fs di node

fs.open('fileCreato.txt', 'w' , (err, fd) =>{

passiamo come primo parametro il file (inesistente) e come secondo parametro la callback di gestione che riceverà come primo parametro l'oggetto err se ci sono errori e come secondo parametro fd (file descriptor = cioè un numero identificativo di un file aperto) .

fs.write(fd, 'Contenuto inserito' , 'utf8' , (err, written,str) => {
console.log(err,written,str);

Se vogliamo effettuare un operazione di scrittura sul file, possiamo usare fs.write, ed invece di indicare il percorso del file indichiamo il file descriptor, come secondo parametro il contenuto che vogliamo scrivere all'interno del file, come terzo parametro la codifica del file (utf8) e come quarto parametro la callback che riceverà l'oggetto err, written per il numero di bite scritti e str per indicare il contenuto appena scritto

    fs.close(fd, err =>{
        if(err) throw err;
    })

Per chiudere un file aperto, usiamo semplicemente close, passando come primo parametro il file descriptor e come secondo parametro la callback che riceverà l'oggetto err.

Scritto da Donato Pirolo

Ciao, sono Donato, frontend developer con una smisurata passione per la SEO. Creo strumenti ad hoc per aiutare aziende e professionisti ad essere cercati sul web e trovare clienti.

Potrebbero interessarti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyright © 2022
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram