FileSystemWritableFileStream - 带有额外便利方法的 WritableStream 对象

安全上下文
该功能仅在部分或所有支持的浏览器中的安全上下文(HTTPS)中可用。

FileSystemWritableFileStreamFile System Access API 的接口,它是一个带有额外便利方法的 WritableStream 对象,它对磁盘上的单个文件进行操作。该接口通过 FileSystemFileHandle.createWritable() 方法访问。

属性

从其父接口 WritableStream 继承了属性。

方法

从其父接口 WritableStream 继承了方法。

FileSystemWritableFileStream.write

将内容写入当前文件的游标偏移处。

FileSystemWritableFileStream.seek

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

FileSystemWritableFileStream.truncate

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

实例

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

然后将用户定义的 Blob 写入随后关闭的流中。

async function saveFile() {

  // 创建一个新的句柄
  const newHandle = await window.showSaveFilePicker();

  // 创建要写入的 FileSystemWritableFileStream
  const writableStream = await newHandle.createWritable();

  // 写入我们的文件
  await writableStream.write(imgBlob);

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

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

// 只需传入数据(无选项)
writableStream.write(data)

// 从确定的位置将数据写入流
writableStream.write({ type: "write", position: position, data: data })

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

// 将文件大小调整为 size 字节长
writableStream.write({ type: "truncate", size: size })

规范

规范
File System Access #api-filesystemwritablefilestream

桌面浏览器兼容性

暂无兼容数据

相关链接