FileSystemWritableFileStream: seek() 方法

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

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

seek()方法是FileSystemWritableFileStream接口的一个方法,它会将当前文件光标偏移量更新为调用该方法时指定的位置(以字节为单位)。

语法

js
seek(position)

参数

position

一个数字,指定从文件开头开始的字节位置。

返回值

一个Promise,返回undefined

异常

NotAllowedError DOMException

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

TypeError

如果position不是数字或未定义,则抛出此异常。

示例

以下异步函数会打开“保存文件”选择器,选择文件后会返回一个FileSystemFileHandle。利用此文件句柄,可以使用FileSystemFileHandle.createWritable()方法创建一个可写流。

接下来,我们将写入流

  1. 一个文本字符串被写入流。
  2. seek()方法用于将光标置于流的开头。
  3. 第二个文本字符串被写入流的开头,覆盖第一个写入内容。

然后,流被关闭。

js
async function saveFile() {
  try {
    // 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("My first file content");
    await writableStream.seek(0);
    await writableStream.write("My second file content");

    // close the file and write the contents to disk.
    await writableStream.close();
  } catch (err) {
    console.error(err.name, err.message);
  }
}

如果运行上面的函数,然后打开磁盘上创建的相应文件,您应该看到文本“My second file content”。

规范

规范
文件系统标准
# api-filesystemwritablefilestream-seek

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅