當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。