【问题标题】:How to read a local file by chunks in JavaScript?如何在 JavaScript 中按块读取本地文件?
【发布时间】:2011-07-10 02:56:53
【问题描述】:

假设,我的本地硬盘驱动器上有一个大小为 500 字节的文件,我想从中读取前 100 个字节,而不将整个文件加载到内存中。如何借助 UniversalXPConnect 在 JavaScript 中实现这一点?当然,仅在 Firefox 中。

【问题讨论】:

  • 只是验证你知道这是不可能的,除非你正在编写一个 Firefox 扩展?
  • @Brock Adams:UniversalXPConnect 提供完全访问权限 - 与 Firefox 扩展程序相同。
  • @Wladimir,UniversalXPConnect 仅在具有必要权限的情况下在 chrome JS 中运行。那就是它必须是附加组件或插件。 IE,一个扩展。
  • @Brock: 或者一个内网网站,给定合适的浏览器配置——然后它需要调用enablePrivilege()

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-10-19
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    相关资源
    最近更新 更多