Septimo Tutorial Node js System



En node js se puede hacer un recorrido entero con archivos y no únicamente los txt, se puede hacer lectura modificación  borrar y crear a partir de código  archivos, como vimos en el tutorial 3 node js al igual que javascript funciona de manera asíncrona y de ese modo podemos hacer la lectura creación modificación de los archivos de manera asíncrona con respectivas validaciones en caso de existir problema alguno al cargar el archivo. 

Ejemplo de lectura de una txt de manera asincrona:

var fs = require("fs");

// Asynchronous read
fs.readFile('input.txt', function (err, data) {
   if (err) {
      return console.error(err);
   }
   console.log("Asynchronous read: " + data.toString());
});

// Synchronous read
var data = fs.readFileSync('input.txt');
console.log("Synchronous read: " + data.toString());

console.log("Program Ended");

Como ya menciones se tiene muchas funcionalidades en cuanto a lectura de archivos txt estos son algunos:

fs.open(path, flags,[model],callback)   Permite abrir un archivo local

donde path: es la direccion donde se encuentra el archivo se incluye el nombre 
flags: indica el comportamiento que tendra el archivo que sera abierto todos estos valores posibles los detallere mas adelante.
mode: Establece el modo de archivo por defecto si no se pone es 0666.
callback: es la funcion que toma dos argumentos en caso de tener un error como err y fd para un archivo resuelto satisfactoriamente sea cual sea el flag tomado.


flags posibles:
 r : Abre un archivo unicamente para su lectura
r+ : Abre un archivo que sera para lectura y para escritura
rs: Abre un archivo para lectura de manera asincrona
rs+ : Abre un archivo para lectura y escritura de manera asincrona
w: Abre un archivo para escritura, el archivo se crea en el caso de no existir antes
wx: La misma funcionalidad que el w pero si no se especifica una ruta muesta un error.
w+: Abre un archivo de lectura y escritura de manera asincrona lo crea en caso de no existir.
wx+: Como el w+ pero si no existe el archivo lo crea.
a: Abre un archivo para poder ser anexado a otro.
a+: Abre un archivo para lectura y para ser anexado.
ax+ y ax: Combina las denominaciones previas. 

Ejemplo con r+:

var fs = require("fs");

// Asynchronous - Opening File
console.log("Going to open file!");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
      return console.error(err);
   }
   console.log("File opened successfully!");     
});

Como obtener cierta información del archivo para eso tenemos en node js varios metodos que permite conocer su nombre e incluso su directorio:

fs.stat(path,callback) donde path es la ruta del archivo y el callback como mecione antes el retorno en caso de ser error rr y en caso de que el flag funcione la respuesta.

stats.isfile() : Retorna un valor booleano true si es un archivo
stats.isdDirector(): Retorna true si es archivo de tipo directorio
stats.is BlockDevice(): Retorna true si es un archivo privado.
stats.isCharacterDevice(): Retorna true si el archivo es un caracter de desipostivo.
stast.isSymbolicLink(): Retorna true si el archivo es un link simbolico.
stats.is FIFO(): Retorna true si el archivo es tipo FIFO
stats.isSocket(): Retorna true si el archivo es un socket.


Ejemplo:

var fs = require("fs");

console.log("Going to get file info!");
fs.stat('input.txt', function (err, stats) {
   if (err) {
      return console.error(err);
   }
   console.log(stats);
   console.log("Got file info successfully!");
   
   // Check file type
   console.log("isFile ? " + stats.isFile());
   console.log("isDirectory ? " + stats.isDirectory());    
});


  
Leer un archivo: 

fs.read(fd, buffer, offset, length, position, callback)

donde fd: Retorna un valor en caso que el archivo ya este abierto
buffer: el buffer que almacena la informacion que va ser leida.
offset: el punto clave desde donde se empezara a leer un archivo
length: este en un entero que especifica el numero de byts que se leera.
position: este e un entero que especifica donde empezara a leer desde el archivo, si la posicion es null, la información se empezaría a leer desde la actual posición del archivo.


Ejemplo:

var fs = require("fs");
var buf = new Buffer(1024);

console.log("Going to open an existing file");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
      return console.error(err);
   }
   console.log("File opened successfully!");
   console.log("Going to read the file");
   
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
      if (err){
         console.log(err);
      }
      console.log(bytes + " bytes read");
      
      // Print only read bytes to avoid junk.
      if(bytes > 0){
         console.log(buf.slice(0, bytes).toString());
      }
   });
});

Cerrar un archivo:
fs.close(fd, callback) 


Ejemplo:


var fs = require("fs");
var buf = new Buffer(1024);

console.log("Going to open an existing file");
fs.open('input.txt', 'r+', function(err, fd) {
   if (err) {
      return console.error(err);
   }
   console.log("File opened successfully!");
   console.log("Going to read the file");
   
   fs.read(fd, buf, 0, buf.length, 0, function(err, bytes) {
      if (err) {
         console.log(err);
      }

      // Print only read bytes to avoid junk.
      if(bytes > 0) {
         console.log(buf.slice(0, bytes).toString());
      }

      // Close the opened file.
      fs.close(fd, function(err) {
         if (err) {
            console.log(err);
         } 
         console.log("File closed successfully.");
      });
   });
});

 


 



Comentarios

Entradas populares