当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js fsPromises.writeFile(file, data[, options])用法及代码示例


fsPromises.writeFile(file, data[, options])

历史
版本变化
v15.14.0、v14.18.0

data 参数支持 AsyncIterableIterableStream

v15.2.0、v14.17.0

options 参数可能包含 AbortSignal 以中止正在进行的 writeFile 请求。

v14.0.0

data 参数将不再强制输入不受支持的字符串。

v10.0.0

添加于:v10.0.0


参数

将数据异步写入文件,如果文件已存在则替换该文件。 data 可以是字符串、缓冲区、 <AsyncIterable> <Iterable> 对象。

如果 data 是缓冲区,则忽略 encoding 选项。

如果options 是字符串,则它指定编码。

mode 选项仅影响新创建的文件。有关详细信息,请参阅 fs.open()

任何指定的 <FileHandle> 都必须支持写入。

在同一个文件上多次使用fsPromises.writeFile() 而不等待承诺被解决是不安全的。

类似于fsPromises.readFile - fsPromises.writeFile 是一种方便的方法,它在内部执行多个 write 调用以写入传递给它的缓冲区。对于性能敏感代码,请考虑使用 fs.createWriteStream() filehandle.createWriteStream()

可以使用 <AbortSignal> 取消 fsPromises.writeFile() 。取消是"best effort",可能还有一些数据需要写入。

import { writeFile } from 'node:fs/promises';
import { Buffer } from 'node:buffer';

try {
  const controller = new AbortController();
  const { signal } = controller;
  const data = new Uint8Array(Buffer.from('Hello Node.js'));
  const promise = writeFile('message.txt', data, { signal });

  // Abort the request before the promise settles.
  controller.abort();

  await promise;
} catch (err) {
  // When a request is aborted - err is an AbortError
  console.error(err);
}

中止正在进行的请求不会中止单个操作系统请求,而是执行内部缓冲fs.writeFile

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 fsPromises.writeFile(file, data[, options])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。