「ファイルの読み書き」の編集履歴(バックアップ)一覧に戻る

ファイルの読み書き - (2014/10/17 (金) 11:01:41) の編集履歴(バックアップ)


ローカルファイルをUTF-8で読み込み

非同期の読み込みでパフォーマンスが良いので普通はこれで。
非同期の処理にES6のPromiseを使用しているので、Promiseの機能も理解している必要が有る。
Cu.import("resource://gre/modules/osfile.jsm");
const filePath = "C:\\temp\\sample.txt";
let promise = OS.File.read(filePath, { encoding: "utf-8" });
promise.then(text => {
    log('テキストファイルを読み込みました。:' + text);
}, e => {
    log('ファイルの読み込みが出来ませんでした。:' + e);
});

ローカルファイルをUTF-8で読み込み(古い方法)

同期読み込みをしたければこちらを使用。
非同期はOS.Fileを使用する方が良い。
Cu.import("resource://gre/modules/FileUtils.jsm");
Cu.import("resource://gre/modules/NetUtil.jsm");
var file = new FileUtils.File("C:\\temp\\sample.txt");
if (!file.exists()) return;
// 同期なら
var fis = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);
fis.init(file, -1, 0, 0);
var data = NetUtil.readInputStreamToString(fis, fis.available(), {charset:"UTF-8"});
// 非同期なら
NetUtil.asyncFetch(file, function(inputStream, status) {
    if (!Components.isSuccessCode(status)) retrun;
    var data = NetUtil.readInputStreamToString(inputStream, inputStream.available(), {charset:"UTF-8"});
});