9

我正在读取一个要缓冲的文件,例如:

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

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

4

3 回答 3

1

包缓冲区替换https://www.npmjs.com/package/buffer-replace替换缓冲区中的内容,如字符串的函数替换。

于 2019-02-19T18:24:08.790 回答
0

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

据我所知,您必须先将其转换为String(toString()方法),然后才能在其中搜索和替换字符串。

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

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

于 2013-08-19T12:52:35.510 回答
0

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

JavaScript 的字符串替换以这种方式有效地处理字符串。如果您仍想使用 Buffers,可以查看buffertools。它具有indexOf在缓冲区中搜索字符串的功能。replace是你必须自己实现的东西。

于 2013-08-20T04:24:04.953 回答