FileSystemWritableFileStream: write() 方法
注意:此功能在 Web Workers 中可用。
write() 方法是 FileSystemWritableFileStream 接口的一个方法,它将内容写入调用该方法的文件的当前文件指针偏移量处。
在流关闭之前,实际文件磁盘上不会写入任何更改。更改通常写入临时文件。此方法还可用于在流中查找字节点并截断以修改文件包含的总字节数。
语法
js
write(data)
参数
data-
可以是以下之一
- 要写入的文件数据,形式为
ArrayBuffer、TypedArray、DataView、Blob或字符串。 - 包含以下属性的对象:
type-
一个字符串,可以是
"write"、"seek"或"truncate"之一。 data-
要写入的文件数据。可以是
ArrayBuffer、TypedArray、DataView、Blob或字符串。如果type设置为"write",则此属性是必需的。 position-
如果使用
"seek"类型,则当前文件指针应移动到的字节位置。如果type设置为"write",也可以设置此项,在这种情况下,写入将从指定位置开始。 size-
一个表示流应包含的字节数的数字。如果
type设置为"truncate",则此属性是必需的。
- 要写入的文件数据,形式为
返回值
一个返回 undefined 的 Promise。
异常
NotAllowedErrorDOMException-
如果
PermissionStatus.state不是granted,则会抛出此异常。 QuotaExceededError-
如果文件的新大小大于文件的原始大小,并且超出了浏览器的 存储配额,则抛出此异常。
TypeError-
如果
data为 undefined,或者position或size无效,则抛出此异常。
示例
以下异步函数打开“保存文件”选择器,一旦选择了文件,它会返回一个 FileSystemFileHandle。从中,使用 FileSystemFileHandle.createWritable() 方法创建可写流。
然后将文本字符串写入流,随后关闭流。
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("This is my file content");
// close the file and write the contents to disk.
await writableStream.close();
} catch (err) {
console.error(err.name, err.message);
}
}
以下示例显示了可以传递到 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-write |
浏览器兼容性
加载中…