El método fs.writeFileSync() es un método sincrónico. Crea un nuevo archivo si el archivo especificado no existe. Además, el módulo 'readline-sync' se utiliza para habilitar la entrada del usuario en tiempo de ejecución.
El módulo 'fs' de Node.js implementa la operación de E/S de archivos. Los métodos del módulo fs pueden ser tanto síncronos como asíncronos. La función asincrónica tiene una función de devolución de llamada como último parámetro que indica la finalización de la función asincrónica. Los desarrolladores de Node.js prefieren los métodos asincrónicos a los métodos sincrónicos, ya que los métodos asincrónicos nunca bloquean un programa durante su ejecución, mientras que estos ú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.
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 un entero de cadena, búfer, URL o descripción de archivo que denota la ruta del archivo donde se debe escribir. El uso de un descriptor de archivo hará que se comporte de manera similar al método fs.write(). datos: es una cadena, búfer, TypedArray o DataView que se escribirá en el archivo. opciones: es una cadena 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 cadena 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 cadena que especifica la bandera utilizada al escribir en el archivo. El valor predeterminado es 'w'.
Los siguientes ejemplos ilustran la Método fs.writeFileSync() en Node.js.
Ejemplo 1:
javascript
// 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.
'> >+>'1. C
2. C++
3. Python'>;> > fs.writeFileSync(>'programming.txt'>, data);> console.log(>'File written successfully
'>);> console.log(>'The written has the following contents:'>);> console.log(fs.readFileSync(>'programming.txt'>,>'utf8'>));> |
diferencia entre empresa y empresa
>
>
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:
javascript
// 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 +>'
'>,> >{> >encoding:>'utf8'>,> >flag:>'a+'>,> >mode: 0o666> >});> }> > console.log(>'File written successfully 5 times
'>);> console.log(>'The written file has the following contents:'>);> console.log(fs.readFileSync(>'movies.txt'>,>'utf8'>));> |
>
ejemplo de java lambda
>
Producción:
File written successfully 5 times The written file has the following contents: Movie 0 Movie 1 Movie 2 Movie 3 Movie 4>
Ejemplo 3: Tomar información en tiempo de ejecución de los usuarios para el nombre del archivo y los datos del archivo usando el módulo readline
javascript
cdr forma completa
let readline = require(>'readline-sync'>);> let fs = require(>'fs'>);> > let path = readline.question(>'Enter file name/path: '>);> > console.log(>'Entered path : '> + path);> > let 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: Tomar entradas de tiempo de ejecución de los usuarios para datos de archivos usando el módulo readline usando el búfer.
javascript
let fs = require(>'fs'>);> let readline = require(>'readline-sync'>);> let 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> let 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);> }> |
excepción personalizada en java
>
>
Producción

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