node.js – replace缓冲区中的内容的最佳方法

我正在读取一个文件来缓冲像:

var myfile = fs.readFileSync(myfile.txt);

什么是正确的方法来replace一些string到另一个在myfile缓冲区? 我想保留它作为缓冲区,因为它比保持它作为string更快。

不幸的是,缓冲区处理原始二进制数据。 它不提供string相关的function。

据我所知,在search和replacestring之前,必须先将它转换为String(toString()方法)。

如果您知道searchstring的索引,则可以将索引前后的缓冲区内容复制到新的缓冲区中,并将replace的内容连接起来。 但在这种情况下,你会遇到编码问题…

缓冲区doc: http : //nodejs.org/api/buffer.html#buffer_class_buffer

如果'abcdef'被'ghi'取代会发生什么。 这将在缓冲区留下一个洞,因为缓冲区不能resize。 至less你可以做的是search到缓冲区的string,并创build另一个输出缓冲区replacestring(可能需要中间缓冲区)。

JavaScript的stringreplace这种方式有效地处理string。 如果你仍然想使用缓冲区,你可以看buffertools 。 它具有indexOf函数,用于searchBuffer的string。 replace是你必须自己实现的东西。