FileSystemWritableFileStream
Draft: This page is not complete.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The FileSystemWritableFileStream
interface of the File System Access API
is a WritableStream
object with additional convenience methods, which operates on a single file on disk. The interface is accessed through the FileSystemFileHandle.createWritable()
method.
Properties
Inherits properties from its parent, WritableStream
.
Methods
Inherits methods from its parent, WritableStream
.
FileSystemWritableFileStream.write
-
Writes content into the file the method is called on, at the current file cursor offset.
FileSystemWritableFileStream.seek
-
Updates the current file cursor offset to the position (in bytes) specified.
FileSystemWritableFileStream.truncate
-
Resizes the file associated with the stream to be the specified size in bytes.
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
Specification |
---|
File System Access # api-filesystemwritablefilestream |
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 | |
FileSystemWritableFileStream |
86 |
86 |
No |
No |
No |
No |
No |
No |
No |
No |
No |
No |
seek |
86 |
86 |
No |
No |
No |
No |
No |
No |
No |
No |
No |
No |
truncate |
86 |
86 |
No |
No |
No |
No |
No |
No |
No |
No |
No |
No |
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