A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.cdn.mozilla.net/zh-CN/docs/Web/API/FileSystemWritableFileStream/write below:

FileSystemWritableFileStream:write() 方法 - Web API

FileSystemWritableFileStream:write() 方法

Limited availability

安全上下文: 此项功能仅在一些支持的浏览器的安全上下文(HTTPS)中可用。

备注: 此特性在 Web Worker 中可用。

FileSystemWritableFileStream 接口的 write() 方法用于在调用此方法的文件上的当前指针偏移处写入内容。

在流被关闭前,更改不会写入到磁盘上实际的文件。通常更改会被先写入到临时文件。这个方法也能被用于定位到流中的字节点位还有进行裁剪以改变文件内容的总字节数。

语法 参数
data

可以是以下之一:

返回值

一个 Promise,会兑现 undefined。

异常
NotAllowedError DOMException

如果 PermissionStatus.state 不为 granted,抛出此异常。

QuotaExceededError DOMException

如果文件新的大小大于文件原来的大小并且超出了浏览器的存储配额,抛出此异常。

TypeError

如果未定义 data 或者 position 或 size 选项的值无效,抛出此异常。

示例

下面的异步函数会打开“保存文件”选择器,选择器在有文件被选择后会返回一个 FileSystemFileHandle。由此,使用 FileSystemFileHandle.createWritable() 方法创建一个写入流。

然后向流中写入一个文本字符串,随后关闭该流。

async function saveFile() {
  try {
    // 创建一个新句柄
    const newHandle = await window.showSaveFilePicker();

    // 创建一个 FileSystemWritableFileStream 用于写入
    const writableStream = await newHandle.createWritable();

    // 写入我们的文件
    await writableStream.write("This is my file content");

    // 关闭文件并将内容写入磁盘
    await writableStream.close();
  } catch (err) {
    console.error(err.name, err.message);
  }
}

下面的例子展示能够向 write() 方法传递的不同选项。

// 只传递数据(没有选项)
writableStream.write(data);

// 向流中指定位置写入数据
writableStream.write({ type: "write", position, data });

// 将文件当前的指针更新到指定的偏移位置
writableStream.write({ type: "seek", position });

// 调整文件至指定字节长度
writableStream.write({ type: "truncate", size });
规范 浏览器兼容性 参见

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4