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') } );