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

时间:2019-07-13 20:29:23

标签: node.js fs

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

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

1 个答案:

答案 0 :(得分:3)

fs.write()将字节写入您指定的文件位置。它将替换文件中的那些字节。它不会影响文件中的任何其他字节。就是这样。

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

如果将O_TRUNC标志与fs.open()一起使用,则它将在打开现有文件时将其长度截断为零,然后可以fs.write()进入现在为空的文件。 / p>

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