FileSystemWritableFileStream
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The FileSystemWritableFileStream
interface of the File System 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.
Instance properties
Inherits properties from its parent, WritableStream
.
Instance 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
The following asynchronous function opens the 'Save File' picker, which returns a FileSystemFileHandle
once a file is selected. From this, a writable stream is created using the FileSystemFileHandle.createWritable()
method.
A text string 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("This is my file content");
// close the file and write the contents to disk.
await writableStream.close();
}
The following examples show different 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, 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 });
Specifications
Specification |
---|
File System Standard # api-filesystemwritablefilestream |
Browser compatibility
BCD tables only load in the browser