📜  Node.js Buffer.concat() 方法(1)

📅  最后修改于: 2023-12-03 14:44:37.772000             🧑  作者: Mango

Node.js Buffer.concat() 方法

在 Node.js 中,Buffer.concat() 方法用于将多个缓冲区合并为一个缓冲区。该方法可以接收一个数组参数,其中包含要合并的缓冲区对象。

语法
Buffer.concat(list[, totalLength])
参数说明
  • list:是一个包含多个 Buffer 的数组。
  • totalLength:可选参数,表示要合并的缓冲区的总长度。如果该参数不传,将计算所有缓冲区的长度总和。
返回值

返回一个新的 Buffer 对象,该对象是将所有传入缓冲区对象合并后的结果。

使用示例

以下是一个示例,演示如何使用 Buffer.concat() 方法将两个缓冲区合并为一个缓冲区:

const buf1 = new Buffer.from('Hello, ');
const buf2 = new Buffer.from('world!');
const buf3 = Buffer.concat([buf1, buf2]);

console.log(buf3.toString());
// 输出: 'Hello, world!'

在上面的示例中,我们创建了两个缓冲区对象 buf1 和 buf2,然后使用 Buffer.concat() 方法将这两个缓冲区合并为一个新的缓冲区 buf3。最后,我们调用 toString() 方法将该缓冲区对象转换为字符串并输出。

注意事项
  • 如果 list 数组中的某个元素不是 Buffer 对象,则会抛出 TypeError 错误。
  • 如果不传入 totalLength 参数,则会计算所有缓冲区对象的总长度。如果总长度超过了 Node.js 中 Buffer 的默认预分配,也就是 8 KB,将会触发重新分配内存的操作,影响性能。因此建议在使用 Buffer.concat() 方法时,尽可能指定 totalLength 参数。