使用Node.js,有没有办法用fs.write而不是fs.writeSync覆盖所有文件内容?看来fs.write会在给定位置写入字节,但其他字节保持不变?
https://nodejs.org/api/fs.html#fs_fs_write_fd_buffer_offset_length_position_callback
答案 0 :(得分:3)
fs.write()
将字节写入您指定的文件位置。它将替换文件中的那些字节。它不会影响文件中的任何其他字节。就是这样。
您可以单独使用fs.ftruncate()
来更改打开的文件描述符的长度,如果将0
作为新的长度传递,它将截断文件为零长度的文件,然后可以fs.write()
个新字节。
如果将O_TRUNC
标志与fs.open()
一起使用,则它将在打开现有文件时将其长度截断为零,然后可以fs.write()
进入现在为空的文件。 / p>
如果您只想用一个操作替换文件的全部内容,则可以改用fs.writeFile()
。这将打开文件进行写入,清除所有先前的内容(可以使用传递的选项修改行为),将数据写入文件,然后将其关闭。