{"id":35,"date":"2012-01-16T18:20:17","date_gmt":"2012-01-16T18:20:17","guid":{"rendered":"https:\/\/danielribes.com\/blog\/?p=7"},"modified":"2026-04-06T11:51:57","modified_gmt":"2026-04-06T11:51:57","slug":"escribir-un-fichero-a-disco-con-air-y-javascript","status":"publish","type":"post","link":"https:\/\/danielribes.com\/blog\/escribir-un-fichero-a-disco-con-air-y-javascript\/","title":{"rendered":"Escribir un fichero a disco con AIR y Javascript"},"content":{"rendered":"<p>Utilizando un enfoque sincronico:<\/p>\n<p><strong>Creamos un nuevo objeto de fichero<\/strong><\/p>\n<pre>var streamFitxer = new air.FileStream();<\/pre>\n<p><strong>Abrimos el fichero<\/strong><\/p>\n<pre>streamFitxer.open(<em>RutaFitxer, Mode<\/em>);<\/pre>\n<p>Donde <em>Mode<\/em> es uno de los siguientes:<\/p>\n<ul>\n<li><strong>air.FileMode.READ:<\/strong> Abre solo para lectura<\/li>\n<li><strong>air.FileMode.WRITE:<\/strong> Abre para escribir, sino existe lo crea<\/li>\n<li><strong>air.FileMode.APPEND:<\/strong> Abre para a\u00f1adir, sino existe lo crea.<\/li>\n<li><strong>air.FileMode.UPDATE:<\/strong> Abre para leer o escribir. Si no existe lo crea. Permite leer desde cualquier posici\u00f3n del fichero y escribe bytes tan solo encima de los bytes actuales, el resto del fichero lo mantiene sin canvios.<\/li>\n<\/ul>\n<p><strong>Escribir en el fichero<\/strong><\/p>\n<pre>streamFitxer.writeUTFBytes( <em>string<\/em> );<\/pre>\n<p>Escribe los datos en UTF-8 pero sin a\u00f1adir el <a href=\"http:\/\/es.wikipedia.org\/wiki\/Marca_de_orden_de_bytes_(BOM)\">prefijo BOM de 16 bytes<\/a> en el inicio del fichero. Si necesitamos este prefijo entonces tendremos que utilizar <strong>writeUTF().<\/strong><\/p>\n<p>Tambien podemos usar <a href=\"http:\/\/help.adobe.com\/en_US\/air\/reference\/html\/flash\/filesystem\/FileStream.html#writeMultiByte()\">writeMultiByte( <em>dades, joc de car\u00e0cters<\/em> )<\/a><\/p>\n<p><strong>Cerramos el fichero<\/strong><\/p>\n<pre>streamFitxer.close();<\/pre>\n<p>Mas informaci\u00f3n en: <a href=\"http:\/\/help.adobe.com\/en_US\/air\/html\/dev\/index.html\">http:\/\/help.adobe.com\/en_US\/air\/html\/dev\/index.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Utilizando un enfoque sincronico: Creamos un nuevo objeto de fichero var streamFitxer = new air.FileStream(); Abrimos el fichero streamFitxer.open(RutaFitxer, Mode); Donde Mode es uno de los siguientes: air.FileMode.READ: Abre solo para lectura air.FileMode.WRITE: Abre para escribir, sino existe lo crea air.FileMode.APPEND: Abre para a\u00f1adir, sino existe lo crea. air.FileMode.UPDATE: Abre para leer o escribir. Si [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[115],"tags":[12],"class_list":["post-35","post","type-post","status-publish","format-standard","hentry","category-desarrollo","tag-javascript"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/comments?post=35"}],"version-history":[{"count":1,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":354,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/posts\/35\/revisions\/354"}],"wp:attachment":[{"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/media?parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/categories?post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/tags?post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}