javascript - 如何将对象中的每个值写入文本文件中的每一行

标签 javascript node.js loops

我有一个

object = { line1: 123, line2: 456 };

我想将其写入文本文件。

打开文本文件时,输出将如下所示。

123
456

我已经尝试过,但行不通

var json_data = require(`${__dirname}/output.json`);

var objectlength = Object.keys(json_data).length;
for ( var i = 0; i < objectlength; i++ ){
    console.log ( i );

    var write_to_txt = fs.writeFileSync(`${__dirname}/output.txt`, 
        json_data.line+i, null, '\t');

}

最佳答案

一种方法是使用流来实现此目的:

var stream = fs.createWriteStream(`${__dirname}/output.txt`, {flags:'a'});
Object.keys(json_data).map( function (item,index) {
    stream.write(json_data[key]+ "\n");
});
stream.end();

考虑一下这里为什么在连续写入同一文件时应该更喜欢流。 https://stackoverflow.com/a/43370201/6517383

或者您可以使用 fs.appendFileSync 代替,如下所示:

Object.keys(json_data).map(key => {
 fs.appendFileSync(`${__dirname}/output.txt`, json_data[key]+ "\n", function (err) {
  if (err) throw err;
  console.log('Saved!');
 });
});

关于javascript - 如何将对象中的每个值写入文本文件中的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57439375/

相关文章:

javascript - 我想强制我的应用程序在启动前关闭其他后台应用程序

javascript - 等待多个异步函数,但在一个完成后继续

c - 线程和具有依赖关系的嵌套 for 循环(C 中的 pthreads)

c++ - 将简单的 for 循环转换为 while 循环?

javascript - 如何仅禁用上个月的日期

javascript - 我该如何使其更加“复杂”?

JavaScript 和 ctrl 键冲突

javascript - onchange 不工作

windows - 如何更改 node.js 中的默认目录? ( Windows )

loops - 使用 common lisp 'loop' 宏对向量求和