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