JavaScript 語言自身只有字符串?dāng)?shù)據(jù)類型,沒有二進制的數(shù)據(jù)類型。
但在處理像TCP 流或文件流時, 必須使用到二進制的數(shù)據(jù)。 因此在Node.js中,定義了一個Buffer類,該類用來創(chuàng)建一個專門存放二進制數(shù)據(jù)的緩存區(qū)。
在Node.js中,Buffer類是隨Node內(nèi)核一起發(fā)布的核心庫。Buffer庫為Node.js 帶來了一種存儲原始數(shù)據(jù)的方法, 可以讓Node.js處理二進制數(shù)據(jù),每當(dāng)需要在Node.js中處理I/O操作中移動的數(shù)據(jù)時, 就有可能使用Buffer庫。原始數(shù)據(jù)存儲在Buffer類的實例中。 一個Buffer類似于一個整數(shù)數(shù)組, 但它對應(yīng)于V8 堆內(nèi)存之外的一塊原始內(nèi)存。
創(chuàng)建Buffer 類
Node Buffer 類可以通過多種方式來創(chuàng)建。
方法1
創(chuàng)建長度為10字節(jié)的Buffer 實例:
var buf = new Buffer(10)
方法2
通過給定的數(shù)據(jù)創(chuàng)建Buffer實例:
var buf = new Buffer([10, 20, 30, 40, 50])
方法3
通過一個字符串來創(chuàng)建Buffer實例:
var buf = new Buffer('www.runoob.com', 'utf-8')
utf-8是默認(rèn)的編碼方式, 此外它同樣支持以下編碼:“ascii”,"utf8","utf16le","usc2","base64"和“hex”。