Node.js | Método fs.writeFileSync()

El módulo ‘fs’ de Node.js implementa la operación de E/S de archivo. Los métodos en el módulo fs pueden ser tanto síncronos como asíncronos. La función asíncrona tiene una función de devolución de llamada como último parámetro que indica la finalización de la función asíncrona. Los desarrolladores de Node.js prefieren los métodos asíncronos a los métodos síncronos, ya que los métodos asíncronos nunca bloquean un programa durante su ejecución, mientras que los últimos sí lo hacen. Bloquear el hilo principal es una mala práctica en Node.js, por lo que las funciones sincrónicas solo deben usarse para depurar o cuando no hay otras opciones disponibles. fs.writeFileSync() es un método síncrono. fs.writeFileSync() crea un nuevo archivo si el archivo especificado no existe. Además, el módulo ‘readline-sync’ se usa para habilitar la entrada del usuario en tiempo de ejecución.
Sintaxis:

fs.writeFileSync( file, data, options )

Parámetros: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación:

  • archivo: Es una string, Buffer, URL o entero de descripción de archivo que denota la ruta del archivo donde se tiene que escribir. El uso de un descriptor de archivo hará que se comporte de manera similar al método fs.write().
  • data: Es una string, Buffer, TypedArray o DataView que se escribirá en el archivo.
  • opciones: es una string u objeto que se puede usar para especificar parámetros opcionales que afectarán la salida. Tiene tres parámetros opcionales:
    • codificación: es una string que especifica la codificación del archivo. El valor predeterminado es ‘utf8’.
    • modo: Es un número entero que especifica el modo del archivo. El valor predeterminado es 0o666.
    • bandera: es una string que especifica la bandera utilizada al escribir en el archivo. El valor predeterminado es ‘w’.

Los siguientes ejemplos ilustran el método fs.writeFileSync() en Node.js:

Ejemplo 1:

// Node.js program to demonstrate the
// fs.writeFileSync() method
  
// Import the filesystem module
const fs = require('fs');
  
let data = "This is a file containing a collection"
           + " of programming languages.\n"
 + "1. C\n2. C++\n3. Python";
  
fs.writeFileSync("programming.txt", data);
console.log("File written successfully\n");
console.log("The written has the following contents:");
console.log(fs.readFileSync("programming.txt", "utf8"));

Producción:

File written successfully

The written has the following contents:
This is a file containing a collection of programming languages.
1. C
2. C++
3. Python

Ejemplo 2:

// Node.js program to demonstrate the
// fs.writeFileSync() method
  
// Import the filesystem module
const fs = require('fs');
  
// Writing to the file 5 times
// with the append file mode
for (let i = 0; i < 5; i++) {
  fs.writeFileSync("movies.txt",
    "Movie " + i + "\n",
    {
      encoding: "utf8",
      flag: "a+",
      mode: 0o666
    });
}
  
console.log("File written successfully 5 times\n");
console.log("The written file has the following contents:");
console.log(fs.readFileSync("movies.txt", "utf8"));

Producción:

File written successfully 5 times

The written file has the following contents:
Movie 0
Movie 1
Movie 2
Movie 3
Movie 4

Referencia: https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options

Ejemplo 3: Tomando la entrada de tiempo de ejecución de los usuarios para el nombre del archivo y los datos del archivo usando el módulo readline

// Write Javascript code here
var readline = require('readline-sync'); 
var fs = require("fs"); 
    
var path = readline.question("Enter file name/path: "); 
  
console.log("Entered path : " + path); 
  
var data = readline.question("Enter file data: ");
  
//synchronous functions may throw errors 
//which can be handled using try-catch block
try {
  fs.writeFileSync(path, data,{flag:'a+'});   //'a+' is append mode
  console.log("File written successfully");
} catch(err) {
  console.error(err);
}
console.log("-----------------------------------------------");
try{
const data = fs.readFileSync(path,{encoding: "utf8"}); 
  console.log("File content is as follows:");
  // Display the file data 
  console.log(data); 
}catch(err){
console.log(err);
}

Producción

Ejemplo 4: Tomando la entrada de tiempo de ejecución de los usuarios para los datos del archivo usando el módulo de línea de lectura usando el búfer

// Write Javascript code here
var fs = require("fs");
var readline = require('readline-sync'); 
var path = readline.question("Enter file name/path: "); 
  
console.log("Entered path : " + path); 
// 1024 specifies the buffer size. We can limit 
// the data size by this approach
var buf = new Buffer.alloc(1024);
buf = readline.question("Enter data:");
  
  
try {
  fs.writeFileSync(path, buf,{flag:'a+'});
  console.log("File written successfully");
} catch(err) {
  console.error(err);
}
console.log("-----------------------------------------------");
try{
const data = fs.readFileSync(path,{encoding: "utf8"}); 
  console.log("File content is as follows:");
  // Display the file data 
  console.log(data); 
}catch(err){
console.log(err);
}

Producción

Publicación traducida automáticamente

Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *