使用 fs.write 而不是 fs.writeFile 覆盖文件的所有内容



使用Node.js,有没有办法用fs.write而不是fs.writeSync覆盖所有文件内容? 看起来 fs.write 会在给定位置写入字节,但保留其他字节不变?

https://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback

fs.write()

字节写入您提供给它的文件位置。 它替换文件中的这些字节。 它不会影响文件中的任何其他字节。 这就是它的工作原理。

您可以单独使用 fs.ftruncate() 更改打开的文件描述符的长度,如果将其作为新长度传递0,它将截断文件为零长度的文件,然后您可以将新字节fs.write()到该文件。

如果将 O_TRUNC 标志与 fs.open() 一起使用,则当您打开它时,它会将任何现有文件截断为零长度,然后您可以fs.write()到现在为空的文件。

如果您只想用一个操作替换文件的全部内容,则可以改用fs.writeFile()。这将打开文件进行写入,清除任何以前的内容(可以使用您传递它的选项修改行为(,将数据写入文件,然后关闭它。

最新更新