【发布时间】:2012-01-02 12:17:56
【问题描述】:
我正在编写一个 Firefox 扩展程序。使用 javascript,我想从网络 POST 下载二进制文件,然后我想将其内容写入文件。我的难点是如何将网页返回的类型转换为需要编写的类型:
var c=new XMLHttpRequest();
c.responseType = "arraybuffer";
var data=Uint8Array(c.response);
“数据”包含二进制内容。 将其写入文件:
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]);
这可行,但对于中等大小的文件来说速度很慢。 有更好的方法吗? 谢谢。
【问题讨论】:
标签: javascript firefox xpcom