我正在写一个Firefox扩展。使用JavaScript,我想从Web POST下载二进制文件,然后我想将其内容写入文件。我的困难是如何将网络返回的类型转换为需要写入的类型:Javascript类型转换
var c=new XMLHttpRequest();
c.responseType = "arraybuffer";
var data=Uint8Array(c.response);
“data”包含二进制内容。 要将其写入文件:
var file= FileUtils.getFile("ProfD", ["somefile"]);
var ostm= FileUtils.openFileOutputStream(file);
var bstm= Cc['@mozilla.org/binaryoutputstream;1'].createInstance(Ci.nsIBinaryOutputStream);
bstm.setOutputStream(ostm);
然后,我需要在“BSTM”写“数据”,但我发现这样做的唯一途径是非常缓慢:
for(var i=0; i<data.length; i++)
bstm.write8(data[i]);
这可以工作,但对于中等大小的文件来说非常慢。 有没有更好的方法来做到这一点? 谢谢。