La escritura de archivos es un aspecto importante de la programación. Cada lenguaje de programación tiene un módulo de archivo bien definido que se puede usar para realizar operaciones con archivos. JavaScript y Node.js también tienen un módulo de archivo que proporciona varios métodos incorporados para realizar operaciones de lectura, escritura, cambio de nombre, eliminación y otras operaciones en archivos. El módulo de archivo de Node.js se denomina módulo fs . De forma predeterminada, el módulo fs escribe archivos con una codificación de ‘UTF-8’.
El método fs.write() es una interfaz de programación de aplicaciones incorporada del módulo fs que se usa para especificar la posición en un archivo para comenzar a escribir en un búfer para escribir, así como también qué parte del búfer escribir en el archivo. El método fs.write() también se puede usar sin un búfer simplemente usando una variable de string. Los ejemplos que se dan a continuación demuestran el uso del búfer y de la string en el método fs.write(). Es un método asíncrono.
Sintaxis:
- Uso de búfer
fs.write(fd, buffer, offset, length, position, callback)
- usando una string
fs.write(fd, string, position, encoding, callback)
Parámetros: El método acepta los siguientes parámetros como se mencionó anteriormente y se describe a continuación:
- fd: un descriptor de archivo que devuelve el valor al abrir el archivo con el método fs.open(). Contiene un valor entero.
- búfer: contiene el valor del tipo de búfer como Buffer, TypedArray, DataView.
- offset: Es un valor entero que determina la parte del búfer que se escribirá en el archivo.
- longitud: Es un valor entero que especifica el número de bytes a escribir en el archivo.
- posición: Es un valor entero que ocupa la posición se refiere al desplazamiento desde el principio del archivo donde se escribirán los datos.
- devolución de llamada: contiene la función de devolución de llamada que recibe el error y la cantidad de bytes escritos en el archivo.
- string: escribe una string en el archivo especificado por fd.
- codificación: el valor de codificación predeterminado es UTF-8.
Valor de retorno: la función de devolución de llamada recibe un error o la cantidad de bytes escritos. Si se recibe un error, se imprime un mensaje de error; de lo contrario, se imprime el número de bytes escritos.
Ejemplo 1:
// Node.js program to demonstrate the // fs.write() method // Include fs module const fs=require("fs"); // File path where data is to be written // Here, we assume that the file to be in // the same location as the .js file var path = 'input.txt'; // Declare a buffer and write the // data in the buffer let buffer = new Buffer.from('GeeksforGeeks: ' + 'A computer science portal for geeks\n'); // The fs.open() method takes a "flag" // as the second argument. If the file // does not exist, an empty file is // created. 'a' stands for append mode // which means that if the program is // run multiple time data will be // appended to the output file instead // of overwriting the existing data. fs.open(path, 'a', function(err, fd) { // If the output file does not exists // an error is thrown else data in the // buffer is written to the output file if(err) { console.log('Cant open file'); }else { fs.write(fd, buffer, 0, buffer.length, null, function(err,writtenbytes) { if(err) { console.log('Cant write to file'); }else { console.log(writtenbytes + ' characters added to file'); } }) } })
Producción:
51 characters added to file
datos del archivo input.txt:
GeeksforGeeks: A computer science portal for geeks
Explicación:
Tras la ejecución exitosa del programa, los datos almacenados en el búfer se agregan al archivo requerido. En caso de que el archivo no exista de antemano, se crea un nuevo archivo y se le agregan datos.
Ejemplo 2:
// Node.js program to demonstrate the // fs.write() method // Include fs module const fs=require("fs"); const str = "Hello world"; const filename = "input.txt"; fs.open(filename, "a", (err, fd)=>{ if(err){ console.log(err.message); }else{ fs.write(fd, str, (err, bytes)=>{ if(err){ console.log(err.message); }else{ console.log(bytes +' bytes written'); } }) } })
Producción:
11 bytes written
datos del archivo input.txt:
Hello world
Explicación: en la ejecución exitosa del programa, el valor de la string se escribe (se agrega) al archivo requerido.
Referencia:
- https://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback
- https://nodejs.org/api/fs.html#fs_fs_write_fd_string_position_encoding_callback
Publicación traducida automáticamente
Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA