1. 程式人生 > >Buffer物件,常用的Buffer方法;

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]),

填充Buffer物件;

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
  <integer> 合併時  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結束的位置;