files/en-us/web/api/filesystemwritablefilestream/seek/index.md
{{securecontext_header}}{{APIRef("File System API")}}{{AvailableInWorkers}}
The seek() method of the {{domxref("FileSystemWritableFileStream")}} interface updates the current file cursor offset to the position (in bytes) specified when calling the method.
seek(position)
position
A {{jsxref('Promise')}} that returns undefined.
NotAllowedError {{domxref("DOMException")}}
granted.position is not a number or not defined.The following asynchronous function opens the 'Save File' picker, which returns a {{domxref('FileSystemFileHandle')}} once a file is selected. From this, a writable stream is created using the {{domxref('FileSystemFileHandle.createWritable()')}} method.
Next, we write to the stream:
seek() method is used to put the cursor at the start of the stream.The stream is then closed.
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("My first file content");
await writableStream.seek(0);
await writableStream.write("My second file content");
// close the file and write the contents to disk.
await writableStream.close();
} catch (err) {
console.error(err.name, err.message);
}
}
If you run the above function and then open the resulting file created on disk, you should see the text "My second file content".
{{Specifications}}
{{Compat}}