admin管理员组文章数量:1134578
I have a sample array as follows
var arr = [ [ 1373628934214, 3 ],
[ 1373628934218, 3 ],
[ 1373628934220, 1 ],
[ 1373628934230, 1 ],
[ 1373628934234, 0 ],
[ 1373628934237, -1 ],
[ 1373628934242, 0 ],
[ 1373628934246, -1 ],
[ 1373628934251, 0 ],
[ 1373628934266, 11 ] ]
I would like to write this array to a file such as I get a file as follows
1373628934214, 3
1373628934218, 3
1373628934220, 1
......
......
I have a sample array as follows
var arr = [ [ 1373628934214, 3 ],
[ 1373628934218, 3 ],
[ 1373628934220, 1 ],
[ 1373628934230, 1 ],
[ 1373628934234, 0 ],
[ 1373628934237, -1 ],
[ 1373628934242, 0 ],
[ 1373628934246, -1 ],
[ 1373628934251, 0 ],
[ 1373628934266, 11 ] ]
I would like to write this array to a file such as I get a file as follows
1373628934214, 3
1373628934218, 3
1373628934220, 1
......
......
Share
Improve this question
edited Jul 12, 2013 at 14:24
dopplesoldner
asked Jul 12, 2013 at 11:39
dopplesoldnerdopplesoldner
9,43912 gold badges46 silver badges56 bronze badges
0
8 Answers
Reset to default 140If 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();
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');
}
}
);
To do what you want, using the fs.createWriteStream(path[, options]) function in an 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}
`));
// 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();
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') }
);
async function x(){
var arr = [ [ 1373628934214, 3 ],
[ 1373628934218, 3 ],
[ 1373628934220, 1 ],
[ 1373628934230, 1 ],
[ 1373628934234, 0 ],
[ 1373628934237, -1 ],
[ 1373628934242, 0 ],
[ 1373628934246, -1 ],
[ 1373628934251, 0 ],
[ 1373628934266, 11 ] ];
await fs.writeFileSync('./PATH/TO/FILE.txt', arr.join('\n'));
}
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
Try with this
await fs.writeFileSync('arreglo.txt', arreglo.join('\n '));
This code works for me
don't forget to import fs
import fs from 'fs';
const fs = require('fs');
var arr = [
[1373628934214, 3],
[1373628934218, 3],
[1373628934220, 1],
[1373628934230, 1],
[1373628934234, 0],
[1373628934237, -1],
[1373628934242, 0],
[1373628934246, -1],
[1373628934251, 0],
[1373628934266, 11]
];
const content = arr.map(item => item.join(', ')).join('\n');
const fp = 'output.txt';
fs.writeFileSync(fp, content, 'utf-8');
console.log('Array has been written to', fp);
本文标签: javascriptnodejshow to write an array to fileStack Overflow
版权声明:本文标题:javascript - node.js - how to write an array to file - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736819132a1954212.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论