node.js - 替换缓冲区中内容的最佳方法

时间:2013-08-19 12:38:00

标签: node.js buffer

我正在读取缓冲区的文件:

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

myfile缓冲区中将某些字符串替换为另一个字符串的正确方法是什么?我想把它保留为缓冲区,因为它比将它保持为字符串更快。

3 个答案:

答案 0 :(得分:0)

不幸的是,缓冲区处理原始二进制数据。它不提供与字符串相关的功能。

据我所知,在搜索和替换内部字符串之前,必须首先将其转换为String(toString()方法)。

如果您知道搜索字符串的索引,则可以将索引前后的缓冲区内容复制到新缓冲区中,并连接已替换的内容。 但在这种情况下,您将遇到编码问题......

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

答案 1 :(得分:0)

如果'abcdef'被'ghi'取代会发生什么。它会在缓冲区中留下一个漏洞,因为缓冲区无法调整大小。您可以做的最少是在Buffer中搜索字符串并创建另一个输出Buffer替换字符串(可能需要中间缓冲区)。

JavaScript的字符串替换以这种方式有效地处理字符串。如果您仍想使用缓冲区,可以查看buffertools。它具有indexOf函数,用于在Buffer中搜索字符串。 replace是您必须自己实施的。

答案 2 :(得分:0)

包buffer-replace https://www.npmjs.com/package/buffer-replace替换了缓冲区中的内容,就像函数String替换一样。