我正在读取缓冲区的文件:
var myfile = fs.readFileSync(myfile.txt);
在myfile
缓冲区中将某些字符串替换为另一个字符串的正确方法是什么?我想把它保留为缓冲区,因为它比将它保持为字符串更快。
答案 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替换一样。