FileSystemWritableFileStream

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

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

文件系统 APIFileSystemWritableFileStream 接口是一类附加了便于操作磁盘上单个文件的方法的 WritableStream 对象。这个接口通过 FileSystemFileHandle.createWritable() 方法来访问。

WritableStream FileSystemWritableFileStream

实例属性

从父接口 WritableStream 继承属性。

实例方法

从父接口 WritableStream 继承方法。

FileSystemWritableFileStream.write()

向调用此方法的文件写入内容,写入到文件当前指针偏移处。

FileSystemWritableFileStream.seek()

更新文件当前指针偏移到指定位置(以字节为单位)。

FileSystemWritableFileStream.truncate()

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

示例

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

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

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

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

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

  // 关闭文件并将内容写入磁盘
  await writableStream.close();
}

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

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

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

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

// 调整文件至指定字节长度
writableStream.write({ type: "truncate", size });

规范

Specification
File System Standard
# api-filesystemwritablefilestream

浏览器兼容性

BCD tables only load in the browser

参见