纯JavaScript无法有效地处理二进制数据。 Node.js具有用于处理二进制数据的本机层实现,这是使用JavaScript语法的缓冲区实现。 在node.js中,我们在所有操作中都有buufer来读取和写入数据。
有关node.js缓冲区实现的一些注意事项–
- A>缓冲区无法调整大小。
- B>来自传输层的原始数据存储在缓冲区实例中。
- C>缓冲区对应于V8 JavaScript引擎外部的原始内存分配。
现在简而言之,我们将介绍语法。
默认情况下,要为utf-8编码的字符串创建缓冲区:
var buf = new Buffer('Hello Node.js...');
要打印缓冲区,我们可以编写:
console.log(buf);
但是它将向我们显示内存分配的空间。
要打印文本,请输入以下内容:
console.log(buf.toString());
要创建一个预先分配大小的缓冲区,我们需要这样写:
var buf = new Buffer(256);
我们也可以使用以下语法将valye存储在每个预分配的数组中:
buf[10] = 108;
我们可以在创建缓冲区或打印缓冲区时进行编码:
var buf = new Buffer('Hello Node.js...','base64');
要么
console.log(buf.toString('base64'));
可以使用以下语法将缓冲区切成小缓冲区:
var buffer = new Buffer('this is a good place to start');
var slice = buffer.slice(10, 20);
在这里,新缓冲区变量“ slice”将填充“好地方”,从旧缓冲区的第10个字节开始,到第20个字节结束。
同样要将一个缓冲区复制到另一个缓冲区变量,我们需要写成
var buffer = new Buffer('this is a good place to start');
var slice = new Buffer(10);
var startTarget = 0,start = 10,end = 20;
buffer.copy(slice, startTarget, start, end);
在这里,这些值将从旧缓冲区复制到新缓冲区。
在这里可以找到有关Buffer类的详细文档。
翻译自: https://www.javacodegeeks.com/2013/12/node-js-buffer-operations.html