FileSystemWritableFileStream: write() method
Baseline
2025
Newly available
Since September 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
Phương thức write() của giao diện FileSystemWritableFileStream ghi nội dung vào tệp mà phương thức được gọi, tại vị trí con trỏ tệp hiện tại.
Không có thay đổi nào được ghi vào tệp thực sự trên đĩa cho đến khi luồng được đóng. Các thay đổi thường được ghi vào một tệp tạm thời thay thế. Phương thức này cũng có thể được sử dụng để tìm kiếm một điểm byte trong luồng và cắt ngắn để sửa đổi tổng số byte mà tệp chứa.
Cú pháp
write(data)
Tham số
data-
Có thể là một trong các loại sau:
- Dữ liệu tệp cần ghi, dưới dạng
ArrayBuffer,TypedArray,DataView,Blob, hoặc chuỗi. - Một đối tượng chứa các thuộc tính sau:
type-
Một chuỗi là một trong
"write","seek", hoặc"truncate". data-
Dữ liệu tệp cần ghi. Có thể là
ArrayBuffer,TypedArray,DataView,Blob, hoặc chuỗi. Thuộc tính này bắt buộc nếutypeđược đặt là"write". position-
Vị trí byte mà con trỏ tệp hiện tại nên di chuyển đến nếu sử dụng
"seek". Cũng có thể được đặt nếutypelà"write", trong trường hợp đó việc ghi sẽ bắt đầu tại vị trí được chỉ định. size-
Một số đại diện cho số byte mà luồng nên chứa. Thuộc tính này bắt buộc nếu
typeđược đặt là"truncate".
- Dữ liệu tệp cần ghi, dưới dạng
Giá trị trả về
Một Promise trả về undefined.
Ngoại lệ
NotAllowedErrorDOMException-
Được ném ra nếu
PermissionStatus.statekhông phải làgranted. QuotaExceededError-
Được ném ra nếu kích thước mới của tệp lớn hơn kích thước gốc của tệp và vượt quá hạn ngạch lưu trữ của trình duyệt.
TypeError-
Được ném ra nếu
datakhông được xác định, hoặc nếupositionhoặcsizekhông hợp lệ.
Ví dụ
Hàm bất đồng bộ sau đây mở hộp thoại 'Save File', trả về FileSystemFileHandle khi một tệp được chọn. Từ đó, một luồng ghi được tạo bằng phương thức FileSystemFileHandle.createWritable().
Sau đó, một chuỗi văn bản được ghi vào luồng, và luồng được đóng lại.
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);
}
}
Các ví dụ sau đây cho thấy các tùy chọn khác nhau có thể được truyền vào phương thức write().
// 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 });
Thông số kỹ thuật
| Specification |
|---|
| File System> # api-filesystemwritablefilestream-write> |