Node.js - Buffer.fill() 方法



NodeJS buffer.fill() 方法将用给定的值填充缓冲区。如果未指定缓冲区内的范围,它将填充整个缓冲区。

语法

以下是NodeJS fill()方法的语法 -


 buf.fill(value[, offset[, end]][, encoding])

参数

buffer.fill() 方法接受四个参数。第一个参数值是必需的,其余参数值是可选的。

  • value − 这是一个强制性参数。这是您希望缓冲区填充的值。
  • offset - 这是一个可选字段。偏移量告诉可以填充值的起始点。默认值为 0。
  • end - 这是一个可选字段。末端告诉缓冲液填充必须停止在哪里。默认值为缓冲区的长度。
  • encoding - 这是一个可选字段。如果提供的值是字符串,则要考虑的编码。默认值为 utf8。

返回值

它返回一个缓冲区对象,该对象将填充给定的值。

在下面的示例中,我们使用 NodeJS Buffer.alloc() 创建了一个缓冲区,并为其分配了 10 个字节。稍后使用 NodeJS buffer.fill() 将值 'ab' 填充到 10 字节的内存空间中。


const buffer = Buffer.alloc(10);
buffer.fill('ab');
console.log("The final string from buffer is "+buffer.toString());

输出

以下是上述程序的输出 -

The final string from buffer is ababababab

在这个例子中,让我们使用偏移量和结束参数来填充缓冲区。

使用 Buffer.alloc() 分配的空间为 10 个字节。字符串 'ab' 用于填充从 5 到 10 的缓冲区。


const buffer = Buffer.alloc(10);
buffer.fill('ab', 5, 10);
console.log(buffer);
console.log("The final string from buffer is "+buffer.toString())

输出

<Buffer 00 00 00 00 00 61 62 61 62 61>
The final string from buffer is ababa

在这个例子中,让我们用整数值填充缓冲区,如下所示 -


const buffer = Buffer.alloc(10);
console.log(buffer);
buffer.fill(1);
console.log(buffer);

输出

在填充缓冲区之前,当您控制台缓冲区时,您将看到所有零。稍后,整数 1 用于填充缓冲区。输出如下:

<Buffer 00 00 00 00 00 00 00 00 00 00>
<Buffer 01 01 01 01 01 01 01 01 01 01>

在此示例中将使用编码。仅当值为字符串时,才能使用编码。


const buffer = Buffer.alloc(10);
console.log(buffer);
buffer.fill("aazz","hex");
console.log(buffer);

输出

上述示例中使用了十六进制编码。应用编码后的输出如上所示。

<Buffer 00 00 00 00 00 00 00 00 00 00>
<Buffer aa aa aa aa aa aa aa aa aa aa>

您还可以使用缓冲区作为值来填充另一个缓冲区。


const buffer1 = Buffer.allocUnsafe(8);
buffer1.fill(Buffer.from('Hello'));
console.log("The string is "+buffer1.toString());

输出

在此示例中,我们创建了一个名为 buffer1 的缓冲区,并为其分配了 8 个字节。另一个缓冲区是使用 Buffer.from() 方法创建的,字符串值为“Hello”,并用作 buffer1 的值。

The string is HelloHel