使用 Node.js 写入文件
写入文件
在 Node.js 中写入文件最简单的方法是使用 fs.writeFile()
API。
const fs = require('node:fs');
const content = 'Some content!';
fs.writeFile('/Users/joe/test.txt', content, err => {
if (err) {
console.error(err);
} else {
// file written successfully
}
});
同步写入文件
或者,您可以使用同步版本 fs.writeFileSync()
const fs = require('node:fs');
const content = 'Some content!';
try {
fs.writeFileSync('/Users/joe/test.txt', content);
// file written successfully
} catch (err) {
console.error(err);
}
您还可以使用 fs/promises
模块提供的基于 Promise 的 fsPromises.writeFile()
方法
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 将**替换文件内容**。
您可以通过指定标志来修改默认设置
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => {});
您可能会使用的标志是
标志 | 描述 | 如果文件不存在,则创建该文件 |
---|---|---|
r+ | 此标志打开文件以进行**读取**和**写入** | ❌ |
w+ | 此标志打开文件以进行**读取**和**写入**,并且还将流定位到文件**开头** | ✅ |
a | 此标志打开文件以进行**写入**,并且还将流定位到文件**末尾** | ✅ |
a+ | 此标志打开文件以进行**读取**和**写入**,并且还将流定位到文件**末尾** | ✅ |
- 您可以在 fs 文档中找到有关标志的更多信息。
将内容追加到文件
当您不想用新内容覆盖文件,而是想添加到文件中时,追加到文件非常方便。
示例
将内容追加到文件末尾的一个方便方法是 fs.appendFile()
(及其 fs.appendFileSync()
对应项)
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()
示例
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();