node.js - how to write an array to file

前端 未结 5 1515
礼貌的吻别
礼貌的吻别 2020-12-13 03:46

I have a sample array as follows

var arr = [ [ 1373628934214, 3 ],
  [ 1373628934218, 3 ],
  [ 1373628934220, 1 ],
  [ 1373628934230, 1 ],
  [ 1373628934234,         


        
相关标签:
5条回答
  • 2020-12-13 04:12

    A simple solution is to use writeFile :

    require("fs").writeFile(
         somepath,
         arr.map(function(v){ return v.join(', ') }).join('\n'),
         function (err) { console.log(err ? 'Error :'+err : 'ok') }
    );
    
    0 讨论(0)
  • 2020-12-13 04:13

    If it's a huuge array and it would take too much memory to serialize it to a string before writing, you can use 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();
    
    0 讨论(0)
  • 2020-12-13 04:16

    We can simply write the array data to the filesystem but this will raise one error in which ',' will be appended to the end of the file. To handle this below code can be used:

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

    \r\n

    is used for the new Line.

    \n

    won't help. Please refer this

    0 讨论(0)
  • 2020-12-13 04:17

    Remember you can access good old ECMAScript APIs, in this case, JSON.stringify().

    For simple arrays like the one in your example:

    require('fs').writeFile(
    
        './my.json',
    
        JSON.stringify(myArray),
    
        function (err) {
            if (err) {
                console.error('Crap happens');
            }
        }
    );
    
    0 讨论(0)
  • 2020-12-13 04:33

    To do what you want, using the fs.createWriteStream(path[, options]) function in a ES6 way:

    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();
    
    0 讨论(0)
提交回复
热议问题