Node.js - Buffer.subarray() 方法



NodeJS Buffer.subarray() 方法根据原始缓冲区上给定的开始和结束偏移值返回一个新的缓冲区。新缓冲区与原始缓冲区具有相同的内存。

语法

以下是Node.JS Buffer.subarray() 方法的语法 -


 buf.subarray([start[,end]])

参数

此方法接受两个参数,但所有参数都是可选的。下面将对此进行解释。

  • start − (可选) 新缓冲区将开始的起始索引。默认值为 0。
  • end − (可选) 新缓冲区将结束的结束索引。默认值为 buffer.length。

返回值

buffer.subarray() 方法:原始缓冲区中的新缓冲区。

为了创建一个缓冲区,我们将使用 Buffer.from() 方法 -


const buffer = Buffer.from('Hello');
console.log(buffer);
console.log(buffer.subarray(1,4));

输出

<Buffer 48 65 6c 6c 6f>
<Buffer 65 6c 6c>

为了创建一个缓冲区,我们将使用 Buffer.alloc() 方法 -


const buffer = Buffer.alloc(10);
console.log(buffer);
const newBuffer = buffer.subarray(1,4);
newBuffer.fill('a');
console.log(newBuffer);

输出

使用 buffer.subarray() 从长度为 10 的原始缓冲区创建一个新缓冲区。新缓冲区填充了字符“a”。输出如下所示。

<Buffer 00 00 00 00 00 00 00 00 00 00>
<Buffer 61 61 61>

为了创建一个缓冲区,我们将使用 Buffer.from() 方法 -

但会使用负索引作为开始和结束。对 start 使用负值意味着索引将从缓冲区的末尾开始,endd 也是如此。


const buffer = Buffer.from('Qikepucompoint');
console.log("The original buffer is: " + buffer);
subarray_buf = buffer.subarray(-5, -1);
console.log("The new buffer is:" + subarray_buf);
console.log(newBuffer);

输出

The original buffer is: Qikepucompoint
The new buffer is:poin