Spec-Zone.ru › Web APIs

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.

Исключения

NotAllowedError DOMException

Выбрасывается, если PermissionStatus.state не равно granted.

QuotaExceededError DOMException

Выбрасывается, если новый размер файла больше исходного размера файла и превышает квоту хранилища браузера.

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 });

Спецификации

Спецификация
Файловая система
# api-filesystemwritablefilestream-write

Совместимость с браузерами

Рабочий стол Мобильные устройства
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

См. также

  • API файловой системы
  • API доступа к файловой системе: упрощение доступа к локальным файлам

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API