我正在读取一个要缓冲的文件,例如:
var myfile = fs.readFileSync(myfile.txt);
myfile
将缓冲区中的某个字符串替换为另一个字符串的正确方法是什么?我想将其保留为缓冲区,因为它比将其保留为字符串要快。
包缓冲区替换https://www.npmjs.com/package/buffer-replace替换缓冲区中的内容,如字符串的函数替换。
不幸的是,缓冲区处理原始二进制数据。它不提供与字符串相关的功能。
据我所知,您必须先将其转换为String(toString()
方法),然后才能在其中搜索和替换字符串。
如果您知道搜索字符串的索引,则可以将索引前后的缓冲区内容复制到新缓冲区中,并将替换的内容连接起来。但在这种情况下,你会遇到编码问题......
缓冲区文档:http ://nodejs.org/api/buffer.html#buffer_class_buffer
如果abcdef
替换为会发生什么ghi
。它会在缓冲区中留下一个洞,因为缓冲区无法调整大小。您至少可以在 Buffer 中搜索字符串并创建另一个输出 Buffer 替换字符串(可能需要中间缓冲区)。
JavaScript 的字符串替换以这种方式有效地处理字符串。如果您仍想使用 Buffers,可以查看buffertools。它具有indexOf
在缓冲区中搜索字符串的功能。replace
是你必须自己实现的东西。