通过长度创建buffer:
let buffer = Buffer.alloc(100);
console.log(buffer)
得到:<buffer 00 00 00 00 00 00 00 00···> 100个
比较消耗性能:先将100字节清空再分配
let buffer = Buffer.allocUnsafe(100);
不清空,可能还有上一次的内容
数组转buffer
类似于array.from()
let buffer = Buffer.from([17,18,19,0x11]) //最大为255
console.log(buffer)
得到的结果为<buffer 11 12 13 11>
字符串转buffer
let buffer = Buffer.from('我是一个兵');
console.log(buffer.length);
buffer.toString();
3*5 = 12bit
buffer的方法slice
let buffer = Buffer.from([1,2,3]);
let newBuffer = buffer.slice(0,1);
newBuffer[0] = 100;
console.log(buffer);
浅拷贝,将内存的地址引出
最终得到:<buffer 64 2 3>
buffer的方法fill
buffer.fill(value, [offset], [end])
接收参数:
value 将要填充的数据
offet 填充数据的开始位置,不指定默认为 0
end 填充数据的结束位置,不指定默认为 buffer 的 长度。
//例子1中,不指定填充内容的起止位置,50字节全为h
var b = new Buffer(50);
b.fill("h");
//例子2中,指定了填充内容的起止位置,填充最后一个位置h
var b = new Buffer(50);
var len = b.length;
b.fill("h" , len-1 , len);
buffer 的copy方法
var buf1 = Buffer.from('谁是最帅的');
var buf2 = Buffer.from('我自己');
var buf = Buffer.allocUnsafe(24);
三个参数:目标buffer,起始点位置,终止点位置。
buf1.copy(buf,0);
buf2.copy(buf,15);