我正在寫一個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]);
這可以工作,但對於中等大小的文件來說非常慢。 有沒有更好的方法來做到這一點? 謝謝。