FileSystemWritableFileStream

基准线 2025
新推出

自 ⁨2025 年 9 月⁩起,此功能适用于最新设备和浏览器版本。此功能可能不适用于较旧的设备或浏览器。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

FileSystemWritableFileStream 接口是 文件系统 API 的一部分,它是一个带有额外便捷方法的 WritableStream 对象,用于操作磁盘上的单个文件。该接口通过 FileSystemFileHandle.createWritable() 方法访问。

WritableStream FileSystemWritableFileStream

实例属性

继承其父接口 WritableStream 的属性。

实例方法

继承其父接口 WritableStream 的方法。

FileSystemWritableFileStream.write()

在当前文件游标偏移量处,将内容写入调用该方法的该文件。

FileSystemWritableFileStream.seek()

将当前文件游标偏移量更新为指定的(以字节为单位的)位置。

FileSystemWritableFileStream.truncate()

将流关联的文件大小调整为指定的字节数。

示例

以下异步函数打开“保存文件”选择器,一旦选择了文件,它会返回一个 FileSystemFileHandle。从中,使用 FileSystemFileHandle.createWritable() 方法创建可写流。

然后,文本字符串将被写入流,随后流将被关闭。

js
async function saveFile() {
  // create a new handle
  const newHandle = await window.showSaveFilePicker();

  // create a FileSystemWritableFileStream to write to
  const writableStream = await newHandle.createWritable();

  // write our file
  await writableStream.write("This is my file content");

  // close the file and write the contents to disk.
  await writableStream.close();
}

以下示例展示了可以传递给 write() 方法的不同选项。

js
// just pass in the data (no options)
writableStream.write(data);

// writes the data to the stream from the determined position
writableStream.write({ type: "write", position, data });

// updates the current file cursor offset to the position specified
writableStream.write({ type: "seek", position });

// resizes the file to be size bytes long
writableStream.write({ type: "truncate", size });

规范

规范
文件系统
# api-filesystemwritablefilestream

浏览器兼容性

另见