Buffer物件,常用的Buffer方法;
1.建立Buffer的兩種方法:
var buf = Buffer.alloc(); //返回一個指定大小的被填滿的Buffer例項;
var buf = Buffer.from() //返回一個新建的包含所提供的位元組陣列的副本的Buffer;
例:var buf = Buffer.alloc(10) //建立位元組數為10的Buffer物件;
var buf = Buffer.from("fdjka"); //建立Buffer內容為fdjka;
2.buf.fill(value[, offset[, end]][, encoding]),
value:表示填充的值;
offset:表示開始填充Buffer的位置,預設為0;
end:表示填充Buffer的結束位置,預設為buf.length;
encoding:如果Buffer是一個字串,則是字元編碼,預設為utf-8;
3.buf.write(string[, offset[, length]][, encoding]),寫入Buffer物件;
引數與上邊fill()的引數一樣;
4.Buffer.fill()與Buffer.write()的區別是:
Buffer.fill()是填充,會替代Buffer中原來的;Buffer.write()是寫入,不會替代原來的;
5.Buffer.byteLength(string[, encoding]) 獲取字串的位元組長;
string:表示要計算長度的值;
如果 string
是字串,則這是它的字元編碼。 預設: 'utf8';
6.拼接Buffer物件有兩種方法:
用拼接字元創的方法:“+”加法運算子;Buffer.concat(list[, totalLength])
list
<Array> 要合併的
Buffer
或
Uint8Array
例項的陣列
totalLength
list
中
Buffer
例項的總長度
var buf1 = Buffer.from("ik");
var buf2 = Buffer.from("980");
var buf = buf1 + buf2;
或者:
var buf = Buffer.concat([buf1,buf2]);
7.Buffer.compare(buf1,buf2);陣列排序;
會返回三個值:1---表示buf1大於buf2 -1----表示buf1小於buf2 0-----表示buf1等於buf2
8.Buffer.isBuffer(obj);判斷是否是Buffer物件; obj是Buffer返回true;obj不是buffer返回false;
9.buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])
target:要拷貝進的Buffer;
targetStart:target中開始拷貝的偏移量;
sourceStart:buf中開始拷貝的偏移量;
sourceEnd:buf中結束拷貝的偏移量;
buf1.copy(buf2);
console.log(buf1);
console.log(buf2);
最後的到的是:buf2的值會與buf1的值相等;
10.buf.indexOf(value[, byteOffset][, encoding]);
value:要搜尋的值;
byteOffset:buf中開始搜尋的位置;
encoding:如果value是字元創,代表字元編碼;
11.buf.lastIndexOf(value[, byteOffset][, encoding])
引數同buf.Indexof的引數一樣;
12.buf.slice([start[, end]]);擷取字串;
start:新建的Buffer開始的位置;
end:新建的Buffer結束的位置;