【发布时间】:2016-10-22 20:13:30
【问题描述】:
我正在处理我正在处理的大量数据并将其存储在一个文件中。我遍历数据集,然后我想将它全部存储在一个 JSON 文件中。
我使用 fs 的初始方法,将其全部存储在一个对象中然后转储它不起作用,因为我的内存不足并且变得非常慢。
我现在正在使用 fs.createWriteStream,但据我所知,它仍将其全部存储在内存中。
我希望将数据逐个对象写入文件,除非有人可以推荐更好的方法。
我的部分代码:
// Top of the file
var wstream = fs.createWriteStream('mydata.json');
...
// In a loop
let JSONtoWrite = {}
JSONtoWrite[entry.word] = wordData
wstream.write(JSON.stringify(JSONtoWrite))
...
// Outside my loop (when memory is probably maxed out)
wstream.end()
我认为我使用 Streams 错误,有人可以告诉我如何在不耗尽内存的情况下将所有这些数据写入文件吗?我在网上找到的每个示例都与读取流有关,但由于我正在对数据进行计算,我无法使用可读流。我需要按顺序添加到这个文件中。
【问题讨论】:
标签: javascript node.js memory io stream