本文翻译自How to write files using Node
2018年8月22日发布
在Node.js中写入文件的最简单方法是使用fs.writeFile()
API。
示例:
const fs = require('fs')
const content = 'Some content!'
fs.writeFile('/Users/flavio/test.txt', content, (err) => {
if (err) {
console.error(err)
return
}
//file written successfully
})
另外,您可以使用同步版本fs.writeFileSync()
:
const fs = require('fs')
const content = 'Some content!'
try {
const data = fs.writeFileSync('/Users/flavio/test.txt', content)
//file written successfully
} catch (err) {
console.error(err)
}
默认情况下,此API将替换文件的内容
(如果已经存在)。
您可以通过指定标志来修改默认值:
fs.writeFile('/Users/flavio/test.txt', content, { flag: 'a+' }, (err) => {})
您可能会使用的标志是
r+
打开文件进行读写w+
打开文件进行读写,将流放在文件的开头。 如果不存在则创建文件
打开一个文件进行写入,将流放在文件末尾。 如果不存在则创建文件a+
打开文件进行读写,将流放在文件末尾。 如果不存在则创建文件
(您可以在https://nodejs.org/api/fs.html#fs_file_system_flags中找到更多标志)将内容附加到文件末尾的便捷方法是fs.appendFile()
(及其对应的fs.appendFileSync()
):
const content = 'Some content!'
fs.appendFile('file.log', content, (err) => {
if (err) {
console.error(err)
return
}
//done!
})
所有这些方法都会在将控件返回到程序之前将全部内容写入文件(在异步版本中,这意味着执行回调)
在这种情况下,更好的选择是使用流写入文件内容。
下载我免费的Node.js手册