iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
Modern Web

Node.js系列 第 12

DAY 12 Buffer類別及其方法

  • 分享至 

  • xImage
  •  

DAY 12 Buffer類別及其方法

{%hackmd BJrTq20hE %}

tags: 第 14 屆 iThome 鐵人賽 (2022)

Buffer(緩衝)

Buffer會在資料移動時,提供資料暫存的記憶體位置,Buffer存在於全域物件上,無須引用模組即可使用。以new Buffer.from(字串,編碼)可以直接建立新的Buffer。

  • Buffer.alloc(size[,fill[, encodeing]]):傳回一個指定大小的Buffer實例
  • Buffer.allocUnsafe(size)
let buffer = new Buffer.from("Hello");
console.log(buffer);


直接印出,Buffer是以二進制資料儲存

建立Buffer物件

一個 Buffer 物件的大小在建立時就固定下來了,建立之後不可改變,現在我們可以透過以下的範例來說明

var buf = new Buffer(5);
buf[6]=5;
console.log(buf)

結果:

<Buffer 00 00 00 00 00>

執行以上程式,透過傳回結果我們發現 buffer 物件的長度並沒有改變。

Buffer寫入

Buffer 寫入的語法如下:

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

即根據encoding的字元編碼寫入String到buf中的offset位置。length參數是血素的位元組數。如果buf沒有足夠的空間儲存整個字串,就只會記錄一小部分,該方法回傳實際寫入的大小。這是各個參數的介紹:

  • String: 寫入的字串
  • Offset: 開始寫入的索引值,預設為0。
  • Length: 寫入的位元組數,預設為Buffer.length。
  • Encoding :使用的編碼,預設為常用的'utf8'

Buffer.toString

將Buffer以字串印出

console.log(buffer.toString());

除了字串也可以透過toJSON()轉成JSON格式物件,Buffer暫存的資料會以unicode編碼的陣列表現。

console.log(buffer.toJSON());

下一篇「實作! 用Node.js做Discord機器人」,終於要進入到實作的階段了嗎?


上一篇
DAY 11 類別(Class)宣告和繼承
下一篇
DAY 13 站在科技巨人的肩膀上! 用Node.js做Discord機器人
系列文
Node.js30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言