node-webkit WritableStream直到close()才会刷新

时间:2014-04-29 10:21:50

标签: node.js flush node-webkit fs

我在Mac上的node-webkit中的http.get中保存了一些数据。我注意到目标文件大小在Finder中保持0字节,直到文件关闭。

我可以设置一个ReadableStream并从我刚刚写入的文件中读取并且数据就在那里,所以我猜测它在内存中缓存了什么......这很糟糕,因为我正在下载大文件。

如何强制它定期刷新文件?

以下是我正在尝试的内容:

var file_options = { flags: 'w', encoding: null, mode: 0666 };
var file = fs.createWriteStream(dest, file_options);

var get_options = {
    host: parsedUrl.host || parsedUrl.hostname,
    port: parsedUrl.port,
    path: parsedUrl.pathname + search,
    headers: {Range: "bytes="+offset+"-"+limit},
    agent: false
};

var request = http.get(get_options, function (response) {
    response.on('data', function (chunk) {
        var ready = file.write(chunk, encoding='binary');
        if (ready === false) {
            this.pause();
            file.once('drain', this.resume.bind(this));
            console.log('flushed');
        }
    });
});

它似乎只是备份并需要暂时暂停...所以为什么我没有看到文件大小或最后修改过的变化? 如果我在关闭应用程序之前关闭应用程序,然后关闭该流程,那么它会在此时更新,因此我想知道它是否发生在Mac内核本身而不是在内核中发生的事情。节点webkit的。

0 个答案:

没有答案