FileWriter

Como objeto que le permite crear y escribir datos en un archivo.

Propiedades

  • readyState: uno de los tres Estados posibles, ya sea INIT , WRITING , oDONE.

  • nombre de archivo: el nombre del archivo a ser escrito. (DOMString)

  • longitud: la longitud del archivo a ser escrito. (largo)

  • posición: la posición actual del puntero del archivo. (largo)

  • error: un objeto que contiene errores. (FileError)

  • onwritestart: cuando comienza la escritura. (Función)

  • onwrite: cuando la solicitud se ha completado con éxito. (Función)

  • onabort: cuando la escritura ha sido abortada. Por ejemplo, invocando el método abort(). (Función)

  • OnError: cuando la escritura ha fallado. (Función)

  • onwriteend: llamado cuando se haya completado la solicitud (ya sea en el éxito o el fracaso). (Función)

La siguiente propiedad no es compatible:

  • OnProgress: llamado al escribir el archivo, informe de progreso en términos de progress.loaded / progress.total . (Función)

Métodos

  • anular: anula el archivo de la escritura.

  • Buscar: mueve el puntero del archivo en el byte especificado.

  • truncar: acorta el archivo a la longitud especificada.

  • escribir: escribe los datos en el archivo.

Detalles

El FileWriter objeto ofrece una manera de escribir archivos codificado en UTF-8 en el sistema de archivos del dispositivo. Aplicaciones responden a writestart , progress , write , writeend , error , y abort eventos.

Cada FileWriter corresponde a un solo archivo, a la que se pueden escribir datos muchas veces. El FileWriter mantiene el archivo position y length atributos, que permiten la aplicación para seek y write en el archivo. De forma predeterminada, el FileWriter escribe al principio del archivo, sobrescribiendo los datos existentes. Conjunto opcional append booleana a true en el FileWriter del constructor para escribir en el final del archivo.

Datos de texto es apoyados por todas las plataformas que se enumeran a continuación. Texto es codificado como UTF-8 antes de que se escriben en el sistema de archivos. Algunas plataformas soportan datos binarios, que pueden pasar en un ArrayBuffer o un Blob.

Plataformas soportadas

Texto y soporte binario:

  • Android
  • iOS

Soporte de sólo texto:

  • BlackBerry WebWorks (OS 5.0 y superiores)
  • Windows Phone 7 y 8
  • Windows 8

Buscar ejemplo rápido

function win(writer) {
    // fast forwards file pointer to end of file
    writer.seek(writer.length);
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Truncar ejemplo rápido

function win(writer) {
    writer.truncate(10);
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Escribir rápido ejemplo

function win(writer) {
    writer.onwrite = function(evt) {
        console.log("write success");
    };
    writer.write("some sample text");
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Binario escribir ejemplo rápido

function win(writer) {
    var data = new ArrayBuffer(5),
        dataView = new Int8Array(data);
    for (i=0; i < 5; i++) {
        dataView[i] = i;
    }
    writer.onwrite = function(evt) {
        console.log("write success");
    };
    writer.write(data);
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Anexar ejemplo rápido

function win(writer) {
    writer.onwrite = function(evt) {
    console.log("write success");
};
writer.seek(writer.length);
    writer.write("appended text");
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Abortar ejemplo rápido

function win(writer) {
    writer.onwrite = function(evt) {
        console.log("write success");
    };
    writer.write("some sample text");
    writer.abort();
};

var fail = function(evt) {
    console.log(error.code);
};

entry.createWriter(win, fail);

Ejemplo completo

<!DOCTYPE html>
<html>
  <head>
    <title>FileWriter Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
    }

    function gotFS(fileSystem) {
        fileSystem.root.getFile("readme.txt", {create: true, exclusive: false}, gotFileEntry, fail);
    }

    function gotFileEntry(fileEntry) {
        fileEntry.createWriter(gotFileWriter, fail);
    }

    function gotFileWriter(writer) {
        writer.onwriteend = function(evt) {
            console.log("contents of file now 'some sample text'");
            writer.truncate(11);
            writer.onwriteend = function(evt) {
                console.log("contents of file now 'some sample'");
                writer.seek(4);
                writer.write(" different text");
                writer.onwriteend = function(evt){
                    console.log("contents of file now 'some different text'");
                }
            };
        };
        writer.write("some sample text");
    }

    function fail(error) {
        console.log(error.code);
    }

    </script>
  </head>
  <body>
    <h1>Example</h1>
    <p>Write File</p>
  </body>
</html>