2

使用新File System Access API的可以读取和写入用户设备上的文件和文件夹:

const newHandle = await window.showSaveFilePicker();
const writableStream = await newHandle.createWritable();
await writableStream.write("Hello World")
await writableStream.close();

上面的代码会将“Hello World”写入所选文件。如果文件已经存在,它将被截断并用新内容覆盖。

是否可以在不读取整个文件并再次写入的情况下追加到现有文件?一个很好的例子是写入日志文件。

4

1 回答 1

0

您可以获取当前文件大小并将写入位置设置为末尾:

const newHandle = await window.showSaveFilePicker();
const writableStream = await newHandle.createWritable();

// Get the current file size.
const size = (await fileHandle.getFile()).size;

await writableStream.write({
  type: "write",
  data: "Hello World",
  position: size // Set the position to the current file size.
})
await writableStream.close();

更多信息:

https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write https://developer.mozilla.org/en-US/docs/Web/API/IDBMutableFile/getFile

于 2021-06-24T12:07:02.247 回答