静态方法:Buffer.concat(list[, totalLength])


¥Static method: Buffer.concat(list[, totalLength])

返回新的 Buffer,它是将 list 中的所有 Buffer 实例连接在一起的结果。

¥Returns a new Buffer which is the result of concatenating all the Buffer instances in the list together.

如果列表没有条目,或者 totalLength 为 0,则返回新的零长度 Buffer

¥If the list has no items, or if the totalLength is 0, then a new zero-length Buffer is returned.

如果未提供 totalLength,则从 list 中的 Buffer 实例通过相加其长度来计算。

¥If totalLength is not provided, it is calculated from the Buffer instances in list by adding their lengths.

如果提供了 totalLength,则将其强制为无符号整数。如果 list 中的 Buffer 的组合长度超过 totalLength,则结果将被截断为 totalLength

¥If totalLength is provided, it is coerced to an unsigned integer. If the combined length of the Buffers in list exceeds totalLength, the result is truncated to totalLength.

import { Buffer } from 'node:buffer';

// Create a single `Buffer` from a list of three `Buffer` instances.

const buf1 = Buffer.alloc(10);
const buf2 = Buffer.alloc(14);
const buf3 = Buffer.alloc(18);
const totalLength = buf1.length + buf2.length + buf3.length;

console.log(totalLength);
// Prints: 42

const bufA = Buffer.concat([buf1, buf2, buf3], totalLength);

console.log(bufA);
// Prints: <Buffer 00 00 00 00 ...>
console.log(bufA.length);
// Prints: 42const { Buffer } = require('node:buffer');

// Create a single `Buffer` from a list of three `Buffer` instances.

const buf1 = Buffer.alloc(10);
const buf2 = Buffer.alloc(14);
const buf3 = Buffer.alloc(18);
const totalLength = buf1.length + buf2.length + buf3.length;

console.log(totalLength);
// Prints: 42

const bufA = Buffer.concat([buf1, buf2, buf3], totalLength);

console.log(bufA);
// Prints: <Buffer 00 00 00 00 ...>
console.log(bufA.length);
// Prints: 42

Buffer.concat() 也像 Buffer.allocUnsafe() 一样使用内部 Buffer 池。

¥Buffer.concat() may also use the internal Buffer pool like Buffer.allocUnsafe() does.