Подтвердить что ты не робот

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

Ответ 1

Если это массив huuge, и до его записи потребуется слишком много памяти для его сериализации до строки, вы можете использовать потоки:

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();

Ответ 2

Помните, что вы можете получить доступ к старым старым API-интерфейсам ECMAScript, в этом случае JSON.stringify().

Для простых массивов, например, в вашем примере:

require('fs').writeFile(

    './my.json',

    JSON.stringify(myArray),

    function (err) {
        if (err) {
            console.error('Crap happens');
        }
    }
);

Ответ 3

Простое решение - использовать writeFile:

require("fs").writeFile(
     somepath,
     arr.map(function(v){ return v.join(', ') }).join('\n'),
     function (err) { console.log(err ? 'Error :'+err : 'ok') }
);

Ответ 4

Чтобы сделать то, что вы хотите, используя функцию fs.createWriteStream(path [, options]) в ES6:

const fs = require('fs');

const writeStream = fs.createWriteStream('file.txt');

const pathName = writeStream.path;

let array = ['1','2','3','4','5','6','7'];

// write each value of the array on the file breaking line
array.forEach(value => writeStream.write('${value}\n'));

// the finish event is emitted when all data has been flushed from the stream
writeStream.on('finish', () => {
   console.log('wrote all the array data to file ${pathName}');
});

// handle the errors on the write process
writeStream.on('error', (err) => {
    console.error('There is an error writing the file ${pathName} => ${err}')
});

// close the stream
writeStream.end();

Ответ 5

Мы можем просто записать данные массива в файловую систему, но это вызовет одну ошибку, в которой ',' будет добавлено в конец файла. Для обработки этого кода ниже может быть использован:

var fs = require('fs');

var file = fs.createWriteStream('hello.txt');
file.on('error', function(err) { Console.log(err) });
data.forEach(value => file.write('${value}\r\n'));
file.end();

\Г\п

используется для новой линии.

\п

не поможет Пожалуйста, обратитесь это