我有一个名为Names.txt的文件;在这里面是一个人的名字列表,由一行分隔。 例如;
Joe
Alex
Patricia
Emma
如何在node.js中编辑文件,以便有一个":lastname"添加到每一行?
答案 0 :(得分: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!');
});
});
这是它的主旨。当然,您可以保留firstnames和lastnames的映射,并插入相应的姓氏,或者执行各种其他操作,但是您仍然必须经历相同的过程,获取,拆分换行,修改,连接在一起并保存。
答案 1 :(得分: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!');
});
});
这应该解决你从read命令返回缓冲区的问题。