
處理檔案
|
111
可以想成是要裁切的長度)。函式的回傳值是一個
Blob
物件。你可以拿
slice()
回傳的
Blob
物件來取代
File
物件,將它傳給一些物件(像
FileReader
)。舉例來說,如果想要
分批讀取檔案內容,可以這麼寫:
var bufferSize = 1024;
var pos = 0;
var onload = function(e){
console.log("Read: ", e.target.result);
};
var onerror = function(e){
console.log("Error!", e);
};
while (pos < file.size) {
var blob = file.slice(pos, bufferSize);
var reader = new FileReader();
reader.onload = onload;
reader.onerror = onerror;
reader.readAsText(blob);
pos += bufferSize;
}
由此可知,
FileReader
實體只能夠被用一次,如果用過之後還想再用,就得再新建另一
個
FileReader
實體。
完整的範例程式,可參考本書的範例程式檔:
assets/ch07/slices.html
。這裡需要特別注意
一點:如果在執行這支程式時,沙盒(sandbox)是位於本機電腦,就會無法執行程式
中和讀檔有關的部分。也就是說,如果直接在本機磁碟上開啟並執行
slices.html ...