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なんであんなインターフェイスなんだろ……