使用 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();