• Node.js Video Tutorials

Node.js - Buffer.fill() 方法



NodeJS buffer.fill() 方法用於使用給定值填充緩衝區。如果未指定緩衝區內的範圍,則將填充整個緩衝區。

語法

以下是 NodeJS fill() 方法的語法:

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

引數

buffer.fill() 方法接受四個引數。第一個引數 value 是必需的,其餘引數是可選的。

  • value - 這是必需的引數。它是您希望緩衝區填充的值。

  • offset - 這是一個可選欄位。offset 指示從哪裡開始填充值。預設值為 0。

  • end - 這是一個可選欄位。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

示例

在這個例子中,讓我們使用 offset 和 end 引數部分填充緩衝區。

使用 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
nodejs_buffer_module.htm
廣告