JavaScript Using the HTML5 FileWriter truncate() method?

I'm experimenting with the HTML5 File API, and I'm needing to use a method which I don't know enough about (simply because it's hardly documented anywhere).

I'm talking about the FileWriter truncate() method, and I know it does what I need to do. Basically, rather than appending text to some file data or using seek() to overwrite a certain portion, I want to overwrite all of the data with something else (e.g. from "somedata" to "").

Here's a snippet of the FileWriter setup from HTML5Rocks, with truncate() added in.

function onInitFs(fs) {

  fs.root.getFile('log.txt', {create: false}, function(fileEntry) {

    // Create a FileWriter object for our FileEntry (log.txt).
    fileEntry.createWriter(function(fileWriter) {

      fileWriter.seek(fileWriter.length); // Start write position at EOF.
      fileWriter.truncate(1);

      // Create a new Blob and write it to log.txt.
      var bb = new BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
      bb.append('Hello World');
      fileWriter.write(bb.getBlob('text/plain'));

    }, errorHandler);

  }, errorHandler);

}

window.requestFileSystem(window.PERSISTENT, 1024*1024, onInitFs, errorHandler);

When it gets to calling writer.truncate(), calling writer.write() throws a File Exception error. I believe this is because the readyState is set to WRITING. Unfortunately, I don't know how to get around that.

I've already tried looking through the HTML5Rocks section on this, but it doesn't tell me anything about a truncate() method (although I know it exists from what the Webkit JS Console tells me).

Long story short, how I can I use the truncate() method correctly without getting an error?

Answer:1

Something like this might be a little more to the point:

truncate Changes the length of the file to that specified

fileEntry.createWriter(function(fileWriter) {
    var truncated = false;
    fileWriter.onwriteend = function(e) {
        if (!truncated) {
            truncated = true;
            this.truncate(this.position);
            return;
        }
        console.log('Write completed.');
    };
    fileWriter.onerror = function(e) {
        console.log('Write failed: ' + e.toString());
    };
    var blob = new Blob(['helo'], {type: 'plain/text'});
    fileWriter.write(blob);
}, errorHandler);
Answer:2

*Is there a way to call a function defined inside another function in javaSCRIPT? For example: window.onload() = function() { function my_function(){ print("Blah"); }; }; function ...

*Is there a way to call a function defined inside another function in javaSCRIPT? For example: window.onload() = function() { function my_function(){ print("Blah"); }; }; function ...

  1. call that function
  2. calling function with arguments in python
  3. calling function with self
  4. calling function is c++
  5. calling the function in python
  6. calling the function in javascript
  7. calling the function in matlab

This is my checkbox HTML code <input id="termsCheckbox" name="termsCheckbox" type="checkbox" value="terms" <?PHP echo $terms; ?> class="checkbox"> this is javascript code var terms = $("...

This is my checkbox HTML code <input id="termsCheckbox" name="termsCheckbox" type="checkbox" value="terms" <?PHP echo $terms; ?> class="checkbox"> this is javascript code var terms = $("...

  1. checkbox status in javascript
  2. checkbox value in javascript
  3. checkbox state in javascript
  4. get checkbox value using javascript
  5. get checkbox status in javascript

I currently work on the following page: divResizable has been modified by jQuery using the following code in $().ready() $("#divResizable").resizable({ handles: 'e' }); $("#divResizable").bind("...

I currently work on the following page: divResizable has been modified by jQuery using the following code in $().ready() $("#divResizable").resizable({ handles: 'e' }); $("#divResizable").bind("...

  1. set div width using jquery
  2. set div width in jquery
  3. change width of div using jquery
  4. change div width in jquery

im trying to make my own chat... so i have an input text field, the submit button, isn't even submit, its just a button.... so when the enter key is pressed, i need the value of the input field to ...

im trying to make my own chat... so i have an input text field, the submit button, isn't even submit, its just a button.... so when the enter key is pressed, i need the value of the input field to ...