• Node.js Video Tutorials

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.concat() 方法通过使用 Buffer.alloc() 和 Buffer.fill() 创建一个新的缓冲区。

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
nodejs_buffer_module.htm
广告