[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/API/FileSystemSyncAccessHandle/write [Back]  [Original]

FileSystemSyncAccessHandle: write()-Methode - Web-APIs | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

FileSystemSyncAccessHandle: write()-Methode

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Mrz 2023 browserbergreifend verfgbar.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen untersttzenden Browsern verfgbar.

Hinweis: Diese Funktion ist nur in Dedicated Web Workers verfgbar.

Die write()-Methode des FileSystemSyncAccessHandle-Interfaces schreibt den Inhalt eines angegebenen Puffers in die Datei, die mit dem Handle verbunden ist, optional an einer bestimmten Position.

Dateien im ursprungsbezogenen privaten Dateisystem sind fr Endnutzer nicht sichtbar, daher unterliegen sie nicht denselben Sicherheitsberprfungen wie Methoden, die auf Dateien im fr den Benutzer sichtbaren Dateisystem ausgefhrt werden. Aus diesem Grund sind Schreibvorgnge mit FileSystemSyncAccessHandle.write() weitaus performanter. Dies macht sie geeignet fr bedeutende, gro angelegte Dateiaktualisierungen wie nderungen an SQLite-Datenbanken.

In diesem Artikel

Syntax

js
write(buffer, options)

Parameter

buffer

Ein ArrayBuffer oder ArrayBufferView (wie z.B. ein DataView), das den Puffer darstellt, der in die Datei geschrieben werden soll.

options Optional

Ein options-Objekt, das die folgenden Eigenschaften enthlt:

at

Eine Zahl, die den Versatz in Bytes vom Anfang der Datei angibt, an dem der Puffer geschrieben werden soll.

Hinweis: Sie knnen den Inhalt eines ArrayBuffer nicht direkt manipulieren. Stattdessen erstellen Sie ein typisiertes Array-Objekt wie ein Int8Array oder ein DataView-Objekt, das den Puffer in einem bestimmten Format darstellt, und verwenden dieses, um den Inhalt des Puffers zu lesen und zu schreiben.

Rckgabewert

Eine Zahl, die die Anzahl der Bytes darstellt, die in die Datei geschrieben wurden.

Ausnahmen

InvalidStateError DOMException

Wird ausgelst, wenn das zugehrige Zugriffs-Handle bereits geschlossen ist oder wenn die nderung der binren Daten der Datei vollstndig fehlschlgt.

QuotaExceededError

Wird ausgelst, wenn die erhhte Datenkapazitt das Speicherquotum des Browsers berschreitet.

TypeError

Wird ausgelst, wenn das zugrunde liegende Dateisystem das Schreiben der Datei vom angegebenen Dateiversatz nicht untersttzt.

Beispiele

Die folgende asynchrone Event-Handler-Funktion ist in einem Web-Worker enthalten. Beim Empfang einer Nachricht vom Haupt-Thread fhrt sie folgendes aus:

  • Erstellt ein synchrones Datei-Zugriffs-Handle.
  • Ruft die Dateigre ab und erstellt einen ArrayBuffer, um sie aufzunehmen.
  • Liest den Dateiinhalt in den Puffer.
  • Kodiert die Nachricht und schreibt sie ans Ende der Datei.
  • Speichert die nderungen auf der Festplatte und schliet das Zugriffs-Handle.
js
onmessage = async (e) => {
  // Retrieve message sent to work from main script
  const message = e.data;

  // Get handle to draft file
  const root = await navigator.storage.getDirectory();
  const draftHandle = await root.getFileHandle("draft.txt", { create: true });
  // Get sync access handle
  const accessHandle = await draftHandle.createSyncAccessHandle();

  // Get size of the file.
  const fileSize = accessHandle.getSize();
  // Read file content to a buffer.
  const buffer = new DataView(new ArrayBuffer(fileSize));
  const readBuffer = accessHandle.read(buffer, { at: 0 });

  // Write the message to the end of the file.
  const encoder = new TextEncoder();
  const encodedMessage = encoder.encode(message);
  const writeBuffer = accessHandle.write(encodedMessage, { at: readBuffer });

  // Persist changes to disk.
  accessHandle.flush();

  // Always close FileSystemSyncAccessHandle if done.
  accessHandle.close();
};

Hinweis: In frheren Versionen der Spezifikation wurden close(), flush(), getSize() und truncate() flschlicherweise als asynchrone Methoden spezifiziert, und ltere Versionen einiger Browser implementieren sie auf diese Weise. Alle aktuellen Browser, die diese Methoden untersttzen, implementieren sie jedoch als synchrone Methoden.

Spezifikationen

Spezifikation
File System
# api-filesystemsyncaccesshandle-write

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page