Diferencia entre readFile y createReadStream en Node.js

En este artículo, discutiremos la diferencia entre readFile y createReadStream en Nodejs . Ambos son módulos que nos permiten abrir un archivo/secuencia y leer los datos presentes en él.

1. readFile : el módulo fs contiene el método readFile. Se utiliza para leer un archivo llevándolo al búfer. Es un método asíncrono y por ello lee el archivo sin bloquear la ejecución del código. Primero, traemos el módulo fs a nuestra aplicación y luego usamos el método readFile dentro de él.

Sintaxis:

fs.readFile( filename, encoding, callback_function)

Parámetros:

  • filename: contiene la ruta al archivo que debe leerse.
  • codificación: contiene la codificación del archivo. Si no se especifica ninguna opción, se devuelve el búfer sin formato. El valor predeterminado es ‘utf8’.
  • callback_function: es una función que se llama después de leer el archivo y contiene dos parámetros err y data. Si se encuentra algún error, se almacena en err; de lo contrario, el contenido del archivo se almacena en datos.

Valor devuelto: Devuelve el contenido de un archivo.

Ejemplo: En este ejemplo, estamos leyendo el archivo usando el método readFile, el archivo que se leerá es output.txt.

archivo de salida.txt:

This is an output file read from readFile method.

index.js

const fs = require('fs');
fs.readFile('output.txt', 'utf8', (err, data) => {
  console.log(`Data present in the file is::    ${data}`);
});
console.log('Outside readFile method');

Producción:

Outside readFile method
Data present in the file is::   
This is an output file read from readFile method.

2. createReadStream : el módulo fs contiene la API incorporada (interfaz de programación de aplicaciones) createReadStream. Nos permite abrir un archivo/secuencia y lee los datos presentes en su interior.

Sintaxis:

fs.createReadStream(path, options)

Parámetros:

  • ruta: contiene la ruta al archivo que debe leerse. Podría ser la string, URL del búfer.
  • options: Es un parámetro opcional. Podemos pasarle una string u objeto.
  • Valor devuelto: Devuelve el objeto de ReadObject Stream.

Ejemplo: en este ejemplo, estamos leyendo el nombre del archivo output.txt mediante el método createReadStream.on.

Archivo de salida.txt:

This is an output file read from createReadStream method.

index.js

const fs = require('fs');
const createReader = fs.createReadStream('output.txt');
  
createReader.on('data', (data) => {
  console.log(data.toString());
});
  
console.log('Outside createReader.on method');

Producción:

Outside createReader.on method
This is an output file read from createReadStream method.

Diferencia entre readFile y createReadStream:

Leer archivo

crearReadStream

Lee el archivo en la memoria antes de ponerlo a disposición 

al usuario

Lee el archivo en fragmentos según la necesidad del usuario.
Es más lento debido a la lectura de todo el archivo. Es más rápido debido a su propiedad de traer trozos.

No se escalará en caso de demasiadas requests, ya que intentará cargar

todos ellos al mismo tiempo.

Es escalable ya que canaliza el contenido directamente al HTTP

objeto de respuesta

Debido a su propiedad, es más fácil para nodejs manejar la limpieza de la memoria en este caso.

En este caso, la limpieza de memoria por parte de nodejs no es fácil.

Publicación traducida automáticamente

Artículo escrito por namancourses 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 *