缓冲区的操作
合并
Buffer.concat(list[, totalLength])
- 需要合并的缓冲对列表
- 缓冲区的总大小
- 返回合并后新的缓冲区
实例:
var buffer1 = Buffer.from('不积跬步无以至千里');
var buffer2 = Buffer.from('不积小流无以成江海');
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log(buffer3);
运行结果:
比较
buf.compare(otherBuffer);
- 参数1:参与比较的缓冲区
- 参数2:otherBuffer开始的索引值
- 参数3:otherBuffer结束的索引值
- 参数4:Buffer开始的索引值
- 参数5:Buffer结束的索引值
- 返回结果为int型:0 -buf和otherBuffer相同,1-buf大于otherBuffer ,-1-buf小于otherBuffer
var buffer1 = Buffer.from('不积跬步无以至千里');
var buffer2 = Buffer.from('不积小流无以成江海');
var result = buffer1.compare(buffer2);
console.log(result);
运行结果:
var buffer1 = Buffer.from('不积跬步无以至千里');
var buffer2 = Buffer.from('不积小流无以成江海');
var result = buffer1.compare(buffer2,1,10,1,2);
console.log(result);
运行结果:
buf.equals(otherBuffer)
返回值为布尔值,判断两个Buffer实例存储的数据是否相同,不同于compare之处在于equals不能指定判断的范围。
拷贝:buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])
- 要拷贝的Buffer对象
- TargetBuffer要拷贝对象的起始索引值(默认为0)
- sourceStart被拷贝起始位置的索引值(默认为0)
- sourceEnd结束索引值(默认为buf.length)
实例:
var buffer1 = Buffer.from('不积跬步无以至千里');
var buffer2 = Buffer.from('不积小流无以成江海');
var result = buffer1.compare(buffer2,1,10,1,2);
buffer1.copy(buffer2);
console.log(buffer1.equals(buffer2))
运行结果:
裁剪缓冲区
buf.slice([start[, end]])
- 开始索引值(默认为0)
- 结束索引值(默认为0)
- 返回裁剪后的缓冲区,指向同一块缓冲,但从start-end剪切
实例:
var buffer1 = Buffer.from('不积跬步无以至千里');
console.log(buffer1);
console.log(buffer1.slice(<