Как прочитать локальный файл кусками в JavaScript? - PullRequest
0 голосов
/ 10 июля 2011

Скажем, у меня есть файл размером 500 байт на локальном жестком диске, и я хочу прочитать первые 100 байт с него, не загружая весь файл в память. Как это сделать в JavaScript с помощью UniversalXPConnect? Конечно, только в Firefox.

1 Ответ

0 голосов
/ 11 июля 2011

Предполагая, что вы хотите прочитать текстовые данные ASCII (без преобразования набора символов):

var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("/foo/bar");
var fstream = Components.classes["@mozilla.org/network/file-input-stream;1"]
                        .createInstance(Components.interfaces.nsIFileInputStream);
fstream.init(file, -1, 0, 0);
var sstream = Components.classes["@mozilla.org/scriptableinputstream;1"]
                        .createInstance(Components.interfaces.nsIScriptableInputStream);
sstream.init(fstream);
var data = sstream.read(100);
sstream.close();

Дополнительная информация: https://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO

...