Javascript 重写html5文件系统api文件内容的最佳方法

Javascript 重写html5文件系统api文件内容的最佳方法,javascript,html,google-chrome,fileapi,html5-filesystem,Javascript,Html,Google Chrome,Fileapi,Html5 Filesystem,因此,我遇到了一个问题,我正在通过HTML5文件系统api将内容写入文件。当新内容比以前的内容短,旧内容按预期写入,但旧内容的尾部仍保留在文件末尾时,就会出现问题。我正在写的数据是给定web应用程序的元数据,并且倾向于定期更改,但不是经常更改,通常大小会增加,但偶尔元数据的大小会变小 例如,文件0000000000的原始内容,新内容11123,写入文件后,内容变为1112300000 为了解决这个问题,我一直在删除这个文件,并在每次调用时传递一个回调来写入新信息。filesystem是在请求持久

因此,我遇到了一个问题,我正在通过HTML5文件系统api将内容写入文件。当新内容比以前的内容短,旧内容按预期写入,但旧内容的尾部仍保留在文件末尾时,就会出现问题。我正在写的数据是给定web应用程序的元数据,并且倾向于定期更改,但不是经常更改,通常大小会增加,但偶尔元数据的大小会变小

例如,文件0000000000的原始内容,新内容11123,写入文件后,内容变为1112300000

为了解决这个问题,我一直在删除这个文件,并在每次调用时传递一个回调来写入新信息。filesystem是在请求持久内存时获得的文件系统对象,并且已正确初始化

function writeToFile(fPath,data,callback){
  rmFile(fPath,function(){
      cnDAO.fileSystem.root.getFile(fPath, {
          create: true
      }, function(fileEntry) {
          fileEntry.createWriter(function(writer) {
              writer.onwriteend = function(e) {
                  callback();
              };
              writer.onerror = function(e3) {  };
              var blob = new Blob([data]);
              writer.write(blob);
          }, errorHandler);
      }, errorHandler);
  });    
}
function rmFile(fPath,callback){
  cnDAO.fileSystem.root.getFile(fPath, {
          create: true
      }, function(fileEntry) {
          fileEntry.remove(callback);
      }, errorHandler);
}
所以,我想知道是否有更好的方法来做我正在做的事情。在我搜索解决方案时,truncate出现在下面的代码中。正如前一篇文章中所指出的,truncate只能在打开文件后立即调用——truncate是更好的方法吗?我现在做的是更好的练习吗?有没有我不知道的更快更简单的方法

如果这是合理的和/或良好的实践,我想重新开始每一次文件写入