node.js – 如何将数组写入文件
我有一个示例数组如下
var arr = [ [ 1373628934214, 3 ], [ 1373628934218, 3 ], [ 1373628934220, 1 ], [ 1373628934230, 1 ], [ 1373628934234, 0 ], [ 1373628934237, -1 ], [ 1373628934242, 0 ], [ 1373628934246, -1 ], [ 1373628934251, 0 ], [ 1373628934266, 11 ] ]
我想写这个数组到一个文件,如我得到一个文件如下
1373628934214, 3 1373628934218, 3 1373628934220, 1 ...... ......
如果这是一个huuge数组,并且在写入之前需要太多内存来将其序列化为string,则可以使用streams:
var fs = require('fs'); var file = fs.createWriteStream('array.txt'); file.on('error', function(err) { /* error handling */ }); arr.forEach(function(v) { file.write(v.join(', ') + '\n'); }); file.end();
请记住,您可以访问良好的旧ECMAScript API,在这种情况下, JSON.stringify()
。
对于像你的例子那样的简单数组:
require('fs').writeFile( './my.json', JSON.stringify(myArray), function (err) { if (err) { console.error('Crap happens'); } } );
一个简单的解决scheme是使用writeFile :
require("fs").writeFile( somepath, arr.map(function(v){ return v.join(', ') }).join('\n'), function (err) { console.log(err ? 'Error :'+err : 'ok') } );