console.log(buf1.compare(buf2, 5, 6, 5));
buf.equals(otherBuffer)
如果 buf 与 otherBuffer 具有完全相同的字节,则返回 true,否则返回 false
otherBuffer <Buffer> 要比较的 Buffer
返回: <Boolean>
var buf1 = Buffer.from('ABC');
var buf2 = Buffer.from('ABC');
var buf3 = Buffer.from('abc');
console.log(buf1.equals(buf2));//true
console.log(buf1.equals(buf3));//false
buf.fill(value[, offset[, end]][, encoding])
value <String> | <Buffer> | <Integer> 用来填充 buf 的值
offset <Integer> 开始填充 buf 的位置。默认: 0
end <Integer> 结束填充 buf 的位置(不包含)。默认: buf.length
encoding <String> 如果 value 是一个字符串,则这是它的字符编码。 默认: ‘utf8’
返回: <Buffer> buf 的引用
如果未指定 offset 和 end,则填充整个 buf。 这个简化使得一个Buffer的创建与填充可以在一行内完成
var b = Buffer.allocUnsafe(10).fill('h');
console.log(b.toString());//hhhhhhhhhhbuf.indexOf(value[, byteOffset][, encoding])
value <String> | <Buffer> | <Integer> 要搜索的值
byteOffset <Integer> buf 中开始搜索的位置。默认: 0
encoding <String> 如果 value 是一个字符串,则这是它的字符编码。 默认: ‘utf8’
返回: <Integer> buf 中 value 首次出现的索引,如果 buf 没包含 value 则返回 -1
如果value是字符串,则 value 根据 encoding 的字符编码进行解析;如果value是Buffer,则value会被作为一个整体使用。如果要比较部分 Buffer 可使用 buf.slice();如果value是数值,则 value 会解析为一个 0 至 255 之间的无符号八位整数值
var buf = Buffer.from('this is a buffer');
// 输出: 0
console.log(buf.indexOf('this'));
// 输出: 2
console.log(buf.indexOf('is'));
// 输出: 8
console.log(buf.indexOf(Buffer.from('a buffer')));
// 输出: 8
// (97 是 'a' 的十进制 ASCII 值)
console.log(buf.indexOf(97));
// 输出: -1
console.log(buf.indexOf(Buffer.from('a buffer example')));
// 输出: 8
console.log(buf.indexOf(Buffer.from('a buffer example').slice(0, 8)));buf.lastIndexOf(value[, byteOffset][, encoding])
与 buf.indexOf() 类似,除了 buf 是从后往前搜索而不是从前往后
var buf = Buffer.from('this buffer is a buffer');
// 输出: 0
console.log(buf.lastIndexOf('this'));
// 输出: 17
console.log(buf.lastIndexOf('buffer'));
// 输出: 17
console.log(buf.lastIndexOf(Buffer.from('buffer')));









