1.緩沖區(qū)Buffer是暫時存放輸入輸出數(shù)據(jù)的一段內(nèi)存氧腰。
2.JS語言自身只有字符串?dāng)?shù)據(jù)類型,沒有二進制數(shù)據(jù)類型,而在處理TCP和文件流的時候必須要處理二進制數(shù)據(jù)。
3.NodeJS提供了一個Buffer對象來提供對二進制數(shù)據(jù)的操作
4.是一個表示固定內(nèi)存分配的全局對象煎饼,也就是說要放到緩存區(qū)中的字節(jié)數(shù)需要提前確定。
5.Buffer好比一個八位字節(jié)元素組成的數(shù)組校赤,可以有效的在javascript中表示二進制數(shù)據(jù)吆玖。
一筒溃、定義Buffer-----現(xiàn)在感覺buffer像一個字節(jié)數(shù)組
第一種創(chuàng)建方式
1. new Buffer(size)
eg: var buf1 = new Buffer(6); //參數(shù)size指定buffer的長度
buf1.fill(0); // 把buffer中的所有元素置為0
第二種創(chuàng)建方式
2.數(shù)組創(chuàng)建new Buffer(array);
// 數(shù)組里一定是一個數(shù)字,范圍在0-255之間
eg: var buf2 = new Buffer([1,2,3]);
第三種創(chuàng)建方式
字符串的創(chuàng)建
new Buffer(str,[encoding]);
eg: buf3 = new Buffer("abc")
二沾乘、Buffer常用的方法
合并Buffer
Buffer.concat([buf1,buf2],length)
復(fù)制Buffer
Buffer.copy(targetBuffer,targetstart,sourcestart,sourceend)
判斷是否為一個Buffer
Buffer.isBuffer()
獲取字節(jié)的長度
Buffer.byteLength()