2007年 12月 25日

nsIScriptableIO

nsIScriptableIO は XPCOM 直接使うよりは遙かにマシだけれど、なんかいまいちだよなぁ……さらにラッパを書きたくなるよ……


こう書きたい

var content = IO.openFile(f, "read text");
// 上と同じ
var content = IO.openFile(f, "read text", function (stream) {
    var res = [];
    while (str = strm.readString(4096)) res.push(str);
    return res.join("");
}); // 自動で close

IO.openFile(f, "write text", "content");
// or
IO.openFile(f, "write text", function (stream) {
    stream.writeString("content");
}); // 自動で close

なんであんなインターフェイスなんだろ……