使用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()
。这将打开文件进行写入,清除任何以前的内容(可以使用您传递它的选项修改行为(,将数据写入文件,然后关闭它。