FileSystemWritableFileStream: write()-Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die write()-Methode des FileSystemWritableFileStream Interfaces schreibt Inhalte in die Datei, auf die die Methode aufgerufen wird, an der aktuellen Datei-Cursor-Position.

Es werden keine Änderungen an der tatsächlichen Datei auf der Festplatte vorgenommen, bis der Stream geschlossen wurde. Änderungen werden stattdessen typischerweise in eine temporäre Datei geschrieben. Diese Methode kann auch verwendet werden, um zu einem Byte-Punkt innerhalb des Streams zu springen und zu kürzen, um die Gesamtanzahl der Bytes, die die Datei enthält, zu ändern.

Syntax

js
write(data)

Parameter

data

Kann eines der folgenden sein:

  • Die zu schreibenden Dateidaten, in Form eines ArrayBuffer, TypedArray, DataView, Blob oder Strings.
  • Ein Objekt, das die folgenden Eigenschaften enthält:
    type

    Ein String, der einer der folgenden Werte ist: "write", "seek" oder "truncate".

    data

    Die zu schreibenden Dateidaten. Kann ein ArrayBuffer, TypedArray, DataView, Blob oder ein String sein. Diese Eigenschaft ist erforderlich, wenn type auf "write" gesetzt ist.

    position

    Die Byte-Position, zu der der aktuelle Datei-Cursor wechseln soll, wenn type "seek" verwendet wird. Kann auch gesetzt werden, wenn type "write" ist, in diesem Fall beginnt das Schreiben an der angegebenen Position.

    size

    Eine Zahl, die die Anzahl der Bytes angibt, die der Stream enthalten sollte. Diese Eigenschaft ist erforderlich, wenn type auf "truncate" gesetzt ist.

Rückgabewert

Ein Promise, das undefined zurückgibt.

Ausnahmen

NotAllowedError DOMException

Wird ausgelöst, wenn PermissionStatus.state nicht granted ist.

QuotaExceededError DOMException

Wird ausgelöst, wenn die neue Größe der Datei größer als die ursprüngliche Größe der Datei ist und das Speicher-Limit des Browsers überschreitet.

TypeError

Wird ausgelöst, wenn data undefiniert ist oder wenn position oder size nicht gültig sind.

Beispiele

Die folgende asynchrone Funktion öffnet den 'Datei speichern'-Dialog, der ein FileSystemFileHandle zurückgibt, sobald eine Datei ausgewählt wurde. Aus diesem wird ein beschreibbarer Stream mit der Methode FileSystemFileHandle.createWritable() erstellt.

Ein Textstring wird dann in den Stream geschrieben, der danach geschlossen wird.

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

Die folgenden Beispiele zeigen verschiedene Optionen, die in die write()-Methode übergeben werden können.

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

Spezifikationen

Specification
File System
# api-filesystemwritablefilestream-write

Browser-Kompatibilität

Siehe auch