FileSystemWritableFileStream.write()
Draft: This page is not complete.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The write()
method of the FileSystemWritableFileStream
interface writes content into the file the method is called on, at the current file cursor offset.
No changes are written to the actual file on disk until the stream has been closed. Changes are typically written to a temporary file instead. This method can also be used to seek to a byte point within the stream and truncate to modify the total bytes the file contains.
Syntax
FileSystemWritableFileStream.write(data).then(...);
Parameters
data
-
Can be either the file data to write, in the form of a
BufferSource
,Blob
orUSVString
. Or an object containing the following properties:-
type
: One of'write'
,'seek'
or'truncate'
. This is required if the object is passed into thewrite()
method. -
data
: The file data to write. Can be aBufferSource
,Blob
orUSVString
. This is required if thetype
is set to'write'
. -
position
: The byte position the current file cursor should move to if type'seek'
is used. Can also be set with'write'
in which case the write will start at the position. -
size
: An unsigned long value representing the amount of bytes the stream should contain. This is required if thetype
is set to'truncate'
-
Return value
Promise
which returns undefined
Exceptions
- NotAllowedError
-
If
PermissionStatus
is not granted. - TypeError
-
If data is undefined, or if
position
orsize
aren't valid. - InvalidStateError
-
If the
position
is set and larger than the bytes available.
Examples
This asynchronous function opens the 'Save File' picker, which returns a FileSystemFileHandle
once a file is selected. From which a writable stream is then created using the FileSystemFileHandle.createWritable()
method.
A user defined Blob
is then written to the stream which is subsequently closed.
async function saveFile() { // 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(imgBlob); // close the file and write the contents to disk. await writableStream.close(); }
The following show different examples of options that can be passed into the write()
method.
// 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: position, data: data }) // updates the current file cursor offset to the position specified writableStream.write({ type: "seek", position: position }) // resizes the file to be size bytes long writableStream.write({ type: "truncate", size: size })
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 | |
write |
86 |
86 |
No |
No |
No |
No |
No |
No |
No |
No |
No |
No |
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/FileSystemWritableFileStream/write