FileSystemWritableFileStream: write()-Methode
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.
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 Dateicursor-Position.
Keine Änderungen werden auf die tatsächliche Datei auf der Festplatte geschrieben, bis der Stream geschlossen wurde. Änderungen werden typischerweise stattdessen in eine temporäre Datei geschrieben. Diese Methode kann auch verwendet werden, um zu einem Byte-Punkt innerhalb des Streams zu suchen und ihn zu kürzen, um die Gesamtanzahl der Bytes, die die Datei enthält, zu ändern.
Syntax
write(data)
Parameter
data-
Kann eines der folgenden sein:
- Die Dateidaten, die in Form eines
ArrayBuffer,TypedArray,DataView,Bloboder Strings geschrieben werden sollen. - Ein Objekt, das die folgenden Eigenschaften enthält:
type-
Ein String, der entweder
"write","seek"oder"truncate"ist. data-
Die Dateidaten, die geschrieben werden sollen. Kann ein
ArrayBuffer,TypedArray,DataView,Bloboder String sein. Diese Eigenschaft ist erforderlich, wenntypeauf"write"gesetzt ist. position-
Die Byte-Position, zu der der aktuelle Dateicursor bewegt werden soll, wenn
typeauf"seek"gesetzt ist. Kann auch gesetzt werden, wenntypeauf"write"ist, wobei das Schreiben an der angegebenen Position beginnt. size-
Eine Zahl, die die Anzahl der Bytes repräsentiert, die der Stream enthalten soll. Diese Eigenschaft ist erforderlich, wenn
typeauf"truncate"gesetzt ist.
- Die Dateidaten, die in Form eines
Rückgabewert
Ein Promise das undefined zurückgibt.
Ausnahmen
NotAllowedErrorDOMException-
Ausgelöst, wenn
PermissionStatus.statenichtgrantedist. QuotaExceededError-
Ausgelöst, wenn die neue Größe der Datei größer ist als die ursprüngliche Größe der Datei und das Speicherlimit des Browsers überschreitet.
TypeError-
Ausgelöst, wenn
dataundefiniert ist oder wennpositionodersizeungültig sind.
Beispiele
Die folgende asynchrone Funktion öffnet den 'Datei speichern'-Picker, der einen FileSystemFileHandle zurückgibt, sobald eine Datei ausgewählt ist. Daraus wird ein schreibbarer Stream erstellt, indem die Methode FileSystemFileHandle.createWritable() verwendet wird.
Ein Textstring wird dann in den Stream geschrieben, welcher anschließend geschlossen wird.
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 an die write()-Methode übergeben werden können.
// 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
Loading…