Используете метод truncate () HTML5 FileWriter?

Я экспериментирую с API файлов HTML5, и мне нужно использовать метод, о котором я недостаточно знаю (просто потому, что он почти нигде не документирован ).

Я говорю о методе FileWriter truncate (), и я знаю, что он делает то, что мне нужно. По сути, вместо того, чтобы добавлять текст к некоторым данным файла или использовать seek () для перезаписи определенной части, я хочу перезаписать все данные чем-то еще (например, от «somedata» до «»).

Вот фрагмент настройка FileWriter из HTML5Rocks с добавленным truncate ().

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);

Когда доходит до вызова writer.truncate (), вызов writer.write () вызывает ошибку исключения файла. Я считаю, что это потому, что для readyState установлено значение WRITING. К сожалению, я не знаю, как это обойти.

Я уже пробовал просмотреть раздел HTML5Rocks по этому поводу, но он мне ничего не говорит о методе truncate () ( хотя я знаю, что он существует из того, что сообщает мне консоль Webkit JS).

Короче говоря, как я могу правильно использовать метод truncate (), не получая сообщения об ошибке?

10
задан caleb531 13 May 2017 в 21:41
поделиться