70

次のようなサンプル配列があります

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
......
......
4

6 に答える 6

118

それが巨大な配列であり、書き込む前に文字列にシリアル化するのに大量のメモリが必要な場合は、ストリームを使用できます。

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();
于 2013-07-12T11:46:49.430 に答える
46

古き良き ECMAScript API (この場合はJSON.stringify().

あなたの例のような単純な配列の場合:

require('fs').writeFile(

    './my.json',

    JSON.stringify(myArray),

    function (err) {
        if (err) {
            console.error('Crap happens');
        }
    }
);
于 2015-04-04T12:00:47.840 に答える
13

簡単な解決策は、writeFileを使用することです:

require("fs").writeFile(
     somepath,
     arr.map(function(v){ return v.join(', ') }).join('\n'),
     function (err) { console.log(err ? 'Error :'+err : 'ok') }
);
于 2013-07-12T11:42:17.930 に答える