• Node.js Video Tutorials

Node.js - Buffer.write() 方法



NodeJS 的Buffer.write() 方法將給定的字串值寫入緩衝區,起始位置由 offset 值指定。如果緩衝區空間不足以容納整個字串,則只寫入部分字串。請注意,它不會處理部分編碼字串的寫入。

語法

以下是Node.JS Buffer.write() 方法的語法:

buf.write(string[, offset[, length]][, encoding])

引數

此方法接受四個引數,解釋如下。

  • string − (必填) 要寫入緩衝區的字串值。

  • offset − (可選) 指示寫入起始位置的偏移量。預設值為 0。

  • length − (可選) 要寫入的位元組數。length 不能超過 buffer.length − offset。因此,length 的預設值為 buffer.length − offset。

  • encoding − (可選) 用於字串值的字元編碼。預設為 utf-8。

返回值

Buffer.write() 方法返回寫入緩衝區的位元組數。

示例

在這個例子中,我們將使用 NodeJS Buffer.from() 建立一個緩衝區,然後將字串值寫入建立的緩衝區。

const buffer = Buffer.from('Hello');
buffer.write('World');
console.log("The final buffer is :"+buffer.toString());

輸出

我們沒有使用任何 offset 值,因此預設值為 0。使用字串Hello建立的緩衝區的長度為 5。因此,當您寫入長度與緩衝區相同的字串“World”時,將寫入完整的字串。

The final buffer is :World

示例

在這個例子中,我將使用 Buffer.alloc() 建立一個緩衝區,併為其分配 5 個長度。現在將使用較長的字串使用 Buffer.write() 方法寫入緩衝區。

const buffer = Buffer.alloc(5);
buffer.write('Hello World');
console.log("The final buffer is :"+buffer.toString());

輸出

我們沒有使用任何 offset 值,因此預設值為 0。建立的緩衝區的長度為 5。由於我們寫入的字串長度為 11,緩衝區只能容納 5 個長度。因此,當您檢視輸出時,緩衝區將僅寫入字串Hello,因為它只能容納 5 個長度。

The final buffer is :Hello

示例

在這個例子中,我將檢查 offset 值。將在 Buffer.write() 中指定 offset,並將字串值寫入建立的緩衝區。

const buffer = Buffer.alloc(5);
buffer.write('Hello World', 3);
console.log("The final buffer is :"+buffer.toString());

輸出

使用的 offset 為 3,緩衝區的長度為 5,要寫入的字串的長度為 11。因此,緩衝區將從 3 開始填充,直到緩衝區的長度 5。因此,只有字元He將被寫入緩衝區。

The final buffer is :He

示例

在這個例子中,我們將使用 length 和 encoding 來使用 Buffer.write() 方法寫入緩衝區。

const buffer = Buffer.alloc(10);
buffer.write('Hello World', 3, 5, 'utf-8');
console.log("The final buffer is :"+buffer.toString());

輸出

因此,offset 從 3 開始,我們要寫入的字串長度為 5。緩衝區的總長度為 10。由於要寫入的長度為 5,因此可以寫入,因為 buffer.length − offset 為 10 − 3 = 7。因此,它可以輕鬆地從緩衝區中的 offset 3 開始容納長度為 5 的字串值。

The final buffer is :Hello
nodejs_buffer_module.htm
廣告