{%hackmd BJrTq20hE %}
第 14 屆 iThome 鐵人賽 (2022)
Buffer會在資料移動時,提供資料暫存的記憶體位置,Buffer存在於全域物件上,無須引用模組即可使用。以new Buffer.from(字串,編碼)可以直接建立新的Buffer。
let buffer = new Buffer.from("Hello");
console.log(buffer);
直接印出,Buffer是以二進制資料儲存
一個 Buffer 物件的大小在建立時就固定下來了,建立之後不可改變,現在我們可以透過以下的範例來說明
var buf = new Buffer(5);
buf[6]=5;
console.log(buf)
結果:
<Buffer 00 00 00 00 00>
執行以上程式,透過傳回結果我們發現 buffer 物件的長度並沒有改變。
Buffer 寫入的語法如下:
buf.write(string[,offset[,length()]][, encoding])
即根據encoding的字元編碼寫入String到buf中的offset位置。length參數是血素的位元組數。如果buf沒有足夠的空間儲存整個字串,就只會記錄一小部分,該方法回傳實際寫入的大小。這是各個參數的介紹:
將Buffer以字串印出
console.log(buffer.toString());
除了字串也可以透過toJSON()轉成JSON格式物件,Buffer暫存的資料會以unicode編碼的陣列表現。
console.log(buffer.toJSON());
下一篇「實作! 用Node.js做Discord機器人」,終於要進入到實作的階段了嗎?