dom / latest / filesystemfilehandle / createwritable.html /

FileSystemFileHandle.createWritable()

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The createWritable() method of the FileSystemFileHandle interface creates a FileSystemWritableFileStream that can be used to write to a file. The method returns a Promise which resolves to this created stream.

Any changes made through the stream won't be reflected in the file represented by the file handle until the stream has been closed. This is typically implemented by writing data to a temporary file, and only replacing the file represented by file handle with the temporary file when the writable filestream is closed.

Syntax

const fileStreamPromise = FileSystemFileHandle.createWritable();

Parameters

FileSystemCreateWritableOptions

An object representing options to pass into the method. Options are:

  • keepExistingData: If false or not specified, the temporary file starts out empty, otherwise the existing file is first copied to this temporary file.

Return value

A Promise which resolves to a FileSystemWritableFileStream object.

Exceptions

NotAllowedError

Thrown if the PermissionStatus.state for the handle is not 'granted' in readwrite mode.

Examples

The following asynchronous function writes the given contents to the file handle, and thus to disk.

async function writeFile(fileHandle, contents) {
  // Create a FileSystemWritableFileStream to write to.
  const writable = await fileHandle.createWritable();

  // Write the contents of the file to the stream.
  await writable.write(contents);

  // Close the file and write the contents to disk.
  await writable.close();
}

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
createWritable
86
86
No
No
72
preview
No
86
No
No
No
14.0

See also

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle/createWritable