Buffer類,是用來建立一個專門存放二進制數據的緩存區。數組
Buffer類,是一個能夠在任何模塊中使用的全局類。緩存
Buffer類使用 new 關鍵字建立該類的實例對象。ui
三種形式建立實例對象:編碼
new Buffer(size) //對象擁有一個length屬性,屬性值爲緩存區大小 new Buffer(array) //直接使用一個數組來初始化緩存區 new Buffer(str,[eccoding]) //直接使用一個字符串來初始化緩存區
//參數一:必須,用於初始化緩存區的字符串
//參數二:可選,用於指定文字編碼格式的字符串,默認爲utf
字符編碼:spa
在Node.js中,一個字符串的長度 與 根據該字符串所建立的緩存區的長度並不相同。code
字符串對象一旦建立不可被修改對象
Buffer對象建立後可被修改blog
Buffer對象方法ci
fill(value,[offset],[end])字符串
toString([encoding],[start],[end])
將Buffer對象中保存的數據轉換爲字符串。
write(string,[offset],[length],[encoding])
向Buffer對象中寫入字符串
copy(targetBuffer,[targetStart],[sourceStart],[sourceEnd])
將Buffer對象中二進制數據複製到另外一個Buffer對象中。
Buffer對象與數值對象之間的相互轉換
參數一:offset 指定獲取數據的起始位置,以字節爲單位
參數二:noAssert 布爾值,指定是否對offset的值進行驗證
Buffer對象與JSON對象之間的相互轉換
能夠使用 JSON.stringify()將Buffer對象中保存的數據轉換爲一個字符串
能夠使用JSON.parse()將一個通過轉換後的字符串還原爲一個數組
Buffer類方法
Buffer.isBuffer(obj)
判斷一個對象是否爲Buffer對象。
Buffer.byteLength(string,[encoding])
計算一個指定字符串的字節數。
Buffer.concat(list,[totalLength])
用於將幾個Buffer對象結合建立爲一個新的Buffer對象。
若是參數一爲空數組 或 參數二等於0,返回一個長度爲0的Buffer對象
若是參數一爲只有一個Buffer對象,返回該Buffer對象
若是參數一擁有一個以上的Buffer對象,返回被建立的Buffer對象
Buffer.isEncoding(encoding)
檢測一個字符串是否爲一個有效的編碼格式字符串。
StringDecoder對象
將Buffer對象中的數據轉換爲字符串,做用與toString()相同。 對UTF8編碼格式的字符串提供更好的支持。
必須加載Node.js中的string_decoder模塊,才能使用。
//加載模塊 var StringDecoder = require('string_decoder').StringDecoder; //建立對象 var decoder = new StringDecoder([encoding])decoder.write(buffer)