
Deno es un runtime de JavaScript y TypeScript que ofrece una serie de herramientas y caracter铆sticas para facilitar el desarrollo y la ejecuci贸n de aplicaciones. Una de estas caracter铆sticas es la posibilidad de escribir texto en archivos de forma sencilla y segura.
Para escribir texto en un archivo con Deno, se puede utilizar el m茅todo Deno.writeTextFile()
. Este m茅todo recibe como par谩metros la ruta del archivo donde se quiere escribir el texto y la cadena de texto que se desea escribir. Adem谩s, el m茅todo devuelve una promesa que se resuelve cuando el archivo se ha escrito correctamente.
Por ejemplo, para escribir “Hola mundo” en un archivo llamado “hello.txt”, se puede utilizar el siguiente c贸digo:
await Deno.writeTextFile("./hello.txt", "Hola mundo!")
console.log("Archivo escrito en ./hello.txt")
Como Deno es seguro por defecto, el c贸digo anterior se tiene que ejecutar d谩ndole permisos de escritura a nuestro programa. Para hacerlo, hay que pasarle el flag --allow-write
:
deno run --allow-write write.ts
Adem谩s, Deno.writeTextFile() tiene un par谩metro opcional llamado options, que permite especificar diferentes opciones de escritura.
Por ejemplo, se puede utilizar la opci贸n append para agregar texto al final de un archivo existente, en lugar de sobreescribirlo. Por ejemplo:
await Deno.writeTextFile("./hello.txt", "Este texto se agregar谩 al final.", {
append: true,
})
Otra forma 煤til de utilizar Deno.writeTextFile()
es combinarlo con JSON.stringify
para escribir objetos serializados en formato JSON en un archivo.
Por ejemplo, vamos a escribir una funci贸n writeJson
que nos permite pasarle un path y un objeto, y que nos devuelve una promesa con el path del archivo escrito o un mensaje de error en caso de que algo salga mal.
async function writeJson(path: string, data: object): string {
try {
const json = JSON.stringify(data)
await Deno.writeTextFile(path, json)
return { path }
} catch (e) {
return { error: e.message }
}
}
console.log(writeJson("./data.json", { message: "Hello World" }))
Tambi茅n existe la versi贸n s铆ncrona de Deno.writeTextFile()
, que se llama Deno.writeTextFileSync()
. Esta versi贸n s铆ncrona recibe los mismos par谩metros que la versi贸n as铆ncrona, pero no devuelve una promesa.
Deno.writeTextFileSync("./hello.txt", "Hola mundo!")