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结束的位置;