如何在JavaScript中通过块读取本地文件?

时间:2011-07-10 02:56:54

标签: javascript firefox file-io firefox-addon universalxpconnect

说,我的本地硬盘驱动器上有一个500字节大小的文件,我想从它读取前100个字节而不将整个文件加载到内存中。如何在UniversalXPConnect的帮助下在JavaScript中实现这一目标?当然只在Firefox中。

1 个答案:

答案 0 :(得分:0)

假设您要读取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