使用 Node.js 写文件
写入文件
在 Node.js 中写入文件的简便方法是使用 fs.writeFile()
API。
javascript
const fs = require('node:fs')
const content = 'Some content!'
fs.writeFile('/Users/joe/test.txt', content, err => {
if (err) {
console.error(err)
} else {
// 文件写入成功
}
})
同步写入文件
或者,您可以使用同步版本 fs.writeFileSync
:
javascript
const fs = require('node:fs')
const content = 'Some content!'
try {
fs.writeFileSync('/Users/joe/test.txt', content)
} catch (err) {
console.error(err)
}
您也可以使用 fs/promises
模块提供的基于 Promise 的 fsPromises.writeFile()
方法:
javascript
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Some content!'
await fs.writeFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()
默认情况下,如果文件已存在,此 API 将替换文件的内容。
您可以通过指定标志来修改默认设置:
javascript
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => [])
您可能会使用的标志如下:
标志 | 描述 | 文件不存在时是否创建 |
---|---|---|
r+ | 此标志以读写模式打开文件 | ❌ |
w+ | 此标志以读写模式打开文件,并将流位置设置在文件开头 | ✅ |
a | 此标志以写入模式打开文件,并将流位置设置在文件末尾 | ✅ |
a+ | 此标志以读写模式打开文件,并将流位置设置在文件末尾 | ✅ |
您可以在 fs 文档中找到有关标志的更多信息。
向文件追加内容
当您不想用新内容覆盖文件,而是想向其添加内容时,追加到文件非常方便。
示例
一个方便的方法来将内容追加到文件的末尾是 fs.appendFile()
(及其对应的 fs.appendFileSync()
):
javascript
const fs = require('node:fs')
const content = 'Some content!'
fs.appendFile('file_log', content, err => {
if (err) {
console.error(err)
} else {
// done!
}
})
使用 Promise 的示例
这是一个 fsPromises.appendFile()
示例:
javascript
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Some content!'
await fs.appendFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()