FileSystemWritableFileStream: метод write()
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в рабочих потоках.
Метод write() интерфейса FileSystemWritableFileStream записывает содержимое в файл, на который вызван метод, по текущему смещению курсора файла.
Изменения не записываются в фактический файл на диске до тех пор, пока поток не будет закрыт. Изменения обычно записываются во временный файл. Этот метод также может быть использован для перехода к байтовой позиции в потоке и обрезания, чтобы изменить общее количество байтов в файле.
Синтаксис
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".
-
Возвращаемое значение
Обещание Promise, которое возвращает undefined.
Исключения
-
NotAllowedErrorDOMException -
Выбрасывается, если
PermissionStatus.stateне равноgranted. -
QuotaExceededErrorDOMException -
Выбрасывается, если новый размер файла больше исходного размера файла и превышает квоту хранилища браузера.
TypeError-
Выбрасывается, если
dataне определено, илиpositionилиsizeнекорректны.
Примеры
Следующая асинхронная функция открывает диалог выбора файла, которая возвращает FileSystemFileHandle после выбора файла. Из этого создается поток записи с помощью метода FileSystemFileHandle.createWritable().
Затем в поток записывается строка текста, после чего поток закрывается.
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().
// 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 });
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
write |
86 | 86 | 111 | 72 | Нет | 109 | 111 | 74 | Нет | 21.0 | 109 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write