FileSystemWritableFileStream: seek() 方法
注意:此功能在Web Workers中可用。
seek()
方法是FileSystemWritableFileStream
接口的一个方法,它会将当前文件光标偏移量更新为调用该方法时指定的位置(以字节为单位)。
语法
js
seek(position)
参数
position
-
一个数字,指定从文件开头开始的字节位置。
返回值
一个Promise
,返回undefined
。
异常
NotAllowedError
DOMException
-
如果
PermissionStatus.state
不是granted
,则抛出此异常。 TypeError
-
如果
position
不是数字或未定义,则抛出此异常。
示例
以下异步函数会打开“保存文件”选择器,选择文件后会返回一个FileSystemFileHandle
。利用此文件句柄,可以使用FileSystemFileHandle.createWritable()
方法创建一个可写流。
接下来,我们将写入流
- 一个文本字符串被写入流。
seek()
方法用于将光标置于流的开头。- 第二个文本字符串被写入流的开头,覆盖第一个写入内容。
然后,流被关闭。
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 表格仅在浏览器中加载