2017-09-16 271 views
0

我有一个名为Names.txt的文件;这里面是一行人名单,由一行隔开。 例如;如何在node.js中的文件的每一行的末尾添加文本?

Joe 
Alex 
Patricia 
Emma 

如何在node.js中编辑文件,以便每行添加一个“:lastname”?

+0

嗨,你可以举一个你迄今为止已经尝试过的例子,并且有人可能会指出你错在哪里。 – Erresen

+0

固定@Errsen。没有必要大拇指朝下。 –

回答

1

你会得到的文件,分割成线,修改这些行,并再次写入文件

fs.readFile('/path/to/Names.txt', function(err, result) { 

    if (err) // handle errors 

    var lines = result.split(/(\n|\r\n)/); 

    var new_content = lines.map(function(line) { 
     return line + ' lastname'; 
    }).join("\r\n") 

    fs.writeFile('/path/to/Names.txt', new_content, 'utf8', function(err) { 
     if (err) // handle errors 
     console.log('The file has been saved!'); 
    }); 
}); 

这是它的JIST。当然,你可以保留名字和姓氏的地图,并插入适当的姓氏,或做各种其他的事情,但你仍然必须经历相同的过程,获取,换行,修改,加入一起并保存。

+0

这个错误,当我登录“结果”它显示了一些缓冲区的事情... –

+0

无视我的评论;我添加了'utf8',所以我得到了正确的编码,它工作。 –

0

在以前的答案大楼,你会希望通过其实现为文件路径后的参数添加UTF8编码,它应该是这样的......

fs.readFile('/path/Names.txt', 'utf8', function(err, res) { 
    if (err) throw err; 

    var lines = res.split(/\n/); 
    var new_content = lines.map(function(line) { 
    return line + ' lastname'; 
    }).join('\n'); 

    fs.writeFile('/path/Names.txt', new_content, 'utf8', function(err) { 
    if (err) throw err; 
    console.log('The file has been saved!'); 
    }); 
}); 

这应该解决您的问题从读命令返回缓冲区。

+0

谢谢,但为什么呢,当我在记事本中加载文件时,它显示所有聚集在一起的文本。有什么我可以做的,以解决这个问题,因为它搞乱了我的其他脚本逐行获取它。 –

+0

这可能是因为记事本不知道如何解释unix方式中的换行符命令 这是\ n' 在Windows程序中,您需要使用 '\ r \ n' 以获取完整的回车 –

+0

谢谢,\ r \ n工作。我没有看到它,因为你编辑它 –

相关问题