2017-09-16 145 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工作。我沒有看到它,因爲你編輯它 –

相關問題