
Leer el contenido de un archivo en Deno es una tarea muy simple gracias a la funci贸n Deno.readTextFile
. Esta funci贸n toma una ruta de archivo y devuelve una promesa que se resuelve con el contenido del archivo como una cadena de texto.
Como ves, a diferencia de Node, no necesitas importar ninguna biblioteca adicional para leer el contenido de un archivo en Deno. La funci贸n Deno.readTextFile
est谩 disponible desde el objeto global Deno
y no necesitas importarla expl铆citamente.
Acepta una ruta de archivo como argumento y devuelve una promesa que se resuelve con el contenido del archivo como una cadena de texto:
const fileContent = await Deno.readTextFile("ruta/al/archivo.txt");
Nota:
Deno.readTextFile
necesita el permiso deallow-read
para funcionar. Puedes agregarlo a tu archivodeno.json
o usar el par谩metro--allow-read
al ejecutar el script.
La variable fileContent ahora contendr谩 el contenido del archivo como una cadena de texto.
Es importante tener en cuenta que Deno.readTextFile
solo puede leer archivos de texto. Si deseamos leer archivos de forma binaria, podemos utilizar la funci贸n Deno.readFile
en su lugar. De hecho, readTextFile
es solo una abstracci贸n de readFile
que convierte el contenido del archivo en una cadena de texto.
const decoder = new TextDecoder("utf-8");
const data = await Deno.readFile("ruta/al/archivo.txt");
console.log(decoder.decode(data));
Gesti贸n de errores
Tanto readFile
como readTextFile
devuelven una promesa que se resuelve con el contenido del archivo. Si ocurre un error al leer el archivo, la promesa se rechazar谩 con un objeto Error
que contiene informaci贸n sobre el error.
Si usas async/await
puedes manejar el error de la siguiente manera:
try {
const fileContent = await readTextFile("ruta/al/archivo.txt");
} catch (error) {
console.error(error); // haz algo con el error
}
Leer archivos de forma s铆ncrona
Aunque es poco recomendable, debes saber que tambi茅n puedes leer archivos de forma s铆ncrona en Deno. Para ello, puedes usar la funci贸n Deno.readTextFileSync
:
const fileContent = Deno.readTextFileSync("ruta/al/archivo.txt");
A diferencia de readTextFile
, esta funci贸n no devuelve una promesa. En su lugar, devuelve el contenido del archivo como una cadena de texto. Pero, obviamente, bloquea el hilos de ejecuci贸n hasta que el archivo se haya le铆do por completo, lo cu谩l puede degradar el rendimiento de nuestro servicio.