缓冲区的操作
合并
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(1,2));
运行结果:
可以看出,从索引下标1开始截取,同时索引下标2截止(不会获取end指向的值)
var buffer1 = Buffer.from('不积跬步无以至千里');
console.log(buffer1);
console.log(buffer1.slice(1,buffer1.length));
运行结果:
常用方法合集
1 |
new Buffer(size) |
2 |
new Buffer(buffer) |
3 |
new Buffer(str[, encoding]) |
4 |
buf.length |
5 |
buf.write(string[, offset[, length]][, encoding]) |
6 |
buf.writeUIntLE(value, offset, byteLength[, noAssert]) const buf = Buffer.allocUnsafe(6);
buf.writeUIntLE(0x1234567890ab, 0, 6);
// 输出: <Buffer ab 90 78 56 34 12> console.log(buf); noAssert 值为 true 时,不再验证 value 和 offset 的有效性。 默认是 false。 |
7 |
buf.writeUIntBE(value, offset, byteLength[, noAssert]) const buf = Buffer.allocUnsafe(6);
buf.writeUIntBE(0x1234567890ab, 0, 6);
// 输出: <Buffer 12 34 56 78 90 ab> console.log(buf); |
8 |
buf.writeIntLE(value, offset, byteLength[, noAssert]) |
9 |
buf.writeIntBE(value, offset, byteLength[, noAssert]) |
10 |
buf.readUIntLE(offset, byteLength[, noAssert]) |
11 |
buf.readUIntBE(offset, byteLength[, noAssert]) |
12 |
buf.readIntLE(offset, byteLength[, noAssert]) |
13 |
buf.readIntBE(offset, byteLength[, noAssert]) |
14 |
buf.toString([encoding[, start[, end]]]) |
15 |
buf.toJSON() |
16 |
buf[index] |
17 |
buf.equals(otherBuffer) |
18 |
buf.compare(otherBuffer) |
19 |
buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]]) |
20 |
buf.slice([start[, end]]) |
21 |
buf.readUInt8(offset[, noAssert]) |
22 |
buf.readUInt16LE(offset[, noAssert]) |
23 |
buf.readUInt16BE(offset[, noAssert]) |
24 |
buf.readUInt32LE(offset[, noAssert]) |
25 |
buf.readUInt32BE(offset[, noAssert]) |
26 |
buf.readInt8(offset[, noAssert]) |
27 |
buf.readInt16LE(offset[, noAssert]) |
28 |
buf.readInt16BE(offset[, noAssert]) |
29 |
buf.readInt32LE(offset[, noAssert]) |
30 |
buf.readInt32BE(offset[, noAssert]) |
31 |
buf.readFloatLE(offset[, noAssert]) |
32 |
buf.readFloatBE(offset[, noAssert]) |
33 |
buf.readDoubleLE(offset[, noAssert]) |
34 |
buf.readDoubleBE(offset[, noAssert]) |
35 |
buf.writeUInt8(value, offset[, noAssert]) |
36 |
buf.writeUInt16LE(value, offset[, noAssert]) |
37 |
buf.writeUInt16BE(value, offset[, noAssert]) |
38 |
buf.writeUInt32LE(value, offset[, noAssert]) |
39 |
buf.writeUInt32BE(value, offset[, noAssert]) |
40 |
buf.writeInt8(value, offset[, noAssert])<="" td=""> |
41 |
buf.writeInt16LE(value, offset[, noAssert]) |
42 |
buf.writeInt16BE(value, offset[, noAssert]) |
43 |
buf.writeInt32LE(value, offset[, noAssert]) |
44 |
buf.writeInt32BE(value, offset[, noAssert]) |
45 |
buf.writeFloatLE(value, offset[, noAssert]) |
46 |
buf.writeFloatBE(value, offset[, noAssert]) |
47 |
buf.writeDoubleLE(value, offset[, noAssert]) |
48 |
buf.writeDoubleBE(value, offset[, noAssert]) |
49 |
buf.fill(value[, offset][, end]) |