目前,我正在尝试删除基本上是专有归档格式的一部分;为了支持删除文件的能力,我正在尝试弄清楚如何删除文件的一部分(给定偏移量和长度)。我看到在node的fs模块中有很多附加逻辑,但似乎没有什么可以“拼接”文件部分的东西。
这种操作可能吗?我是否必须采用不太理想的选项,将其写入全新的文件中?
目前,我正在尝试删除基本上是专有归档格式的一部分;为了支持删除文件的能力,我正在尝试弄清楚如何删除文件的一部分(给定偏移量和长度)。我看到在node的fs模块中有很多附加逻辑,但似乎没有什么可以“拼接”文件部分的东西。
这种操作可能吗?我是否必须采用不太理想的选项,将其写入全新的文件中?
操作系统处理文件追加非常快,当您打开文件进行追加时,无需重新写入整个文件。
但是,如果您想要切割文件的中间部分,则无论使用哪种编程语言,都必须读取整个文件并重新保存。
您可以创建一个新文件,并将输入缓冲区的两个切片保存到其中。
var fs=require('fs')
var buffer=fs.readFileSync('input_file')
fs.writeFileSync("output",buffer.slice(0,20))
fs.appendFileSync("output",buffer.slice(50,100))