Node.js - Buffer.concat() 方法



NodeJS Buffer.concat() 方法将通过连接所有给定的缓冲区对象来返回单个缓冲区对象。如果使用的缓冲区没有项目或缓冲区的长度为 0,则创建的最终缓冲区将是新的零长度缓冲区。

语法

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


Buffer.concat( array, length )

参数

此方法接受两个参数。下面将对此进行解释。

  • array −(必需)需要连接的缓冲区数组。
  • length −(可选)。您希望用于最终连接缓冲区的长度。如果未给出,则长度将是 concat() 中使用的给定缓冲区长度的总和。

返回值

Buffer.concat() 方法将返回一个缓冲区,其长度等于用于连接的缓冲区的长度,或者除非使用 buffer.concat() 中的 length 参数指定。

该示例将使用 NodeJS buffer.concat() 方法创建一个新的缓冲区。


const buffer1 = Buffer.from('A');
const buffer2 = Buffer.from('B');
const buffer3 = Buffer.from('C');
var myarray = [buffer1, buffer2, buffer3];
var newBuffer = Buffer.concat(myarray);
console.log(newBuffer);
console.log("The length of new buffer is : "+newBuffer.length);

输出

<Buffer 41 42 43>
The length of new buffer is : 3

在此示例中,让我们创建一个新的缓冲区,并指定缓冲区的长度。


const buffer1 = Buffer.from('Hello');
const buffer2 = Buffer.from('How');
const buffer3 = Buffer.from('are you!');
var myarray = [buffer1, buffer2, buffer3];
var newBuffer = Buffer.concat(myarray, 10);
console.log(newBuffer);
console.log(newBuffer.toString());
console.log("The length of new buffer is : "+newBuffer.length);

输出

给出的最终缓冲区的长度为 10。即使数组中的缓冲区长度大于指定的长度,它仍将回退到指定的长度。您可以在输出中检查相同的内容。

<Buffer 48 65 6c 6c 6f 48 6f 77 61 72>
HelloHowar
The length of new buffer is : 10

该示例将使用 Buffer.alloc() 和 Buffer.fill() 使用 buffer.concat() 方法创建一个新缓冲区。


const buffer1 = Buffer.alloc(5);
const buffer2 = Buffer.alloc(5);
buffer1.fill('H');
buffer2.fill('W');
var myarray = [buffer1, buffer2];
var newBuffer = Buffer.concat(myarray);
console.log(newBuffer);
console.log("The length of new buffer is : "+newBuffer.length);

输出

<Buffer 48 48 48 48 48 57 57 57 57 57>
The length of new buffer is : 10