官网API地址:http://nodejs.cn/api/buffer.html
1、Buffer.alloc(size[, fill[, encoding]])
新建一个Buffer实例,传入的三个参数分别为内存上分配的大小,填充的内容,编码格式,默认为utf8。
2、Buffer.allocUnsafe(size) 一般不建议使用
以这种方式创建的 Buffer实例的底层内存是未初始化的。 新创建的 Buffer的内容是未知的,且可能包含敏感数据。
可以使用 buf.fill(0)
初始化 Buffer实例为0。
3、Buffer.from()
参数可以传入一个数组,字符串等等,详细用法见官网api
4、Buffer.byteLength(string[, encoding])
返回一个字符串的实际字节长度,第一个参数为要计算长度的值,第二个参数为字符编码,默认为utf8
5、Buffer.isBuffer(obj)
判断传入参数是否为一个Buffer对象
6、Buffer.concat(list[, totalLength])
返回一个合并了 list 中所有 Buffer 实例的新建的 Buffer 。
第一个参数是一个数组,例如:[buf1, buf2, buf3]
第二个参数为合并时 list 中 Buffer 实例的总长度。如果没有提供 totalLength ,则从 list 中的 Buffer 实例计算得到。 为了计算 totalLength 会导致需要执行额外的循环,所以提供明确的长度会运行更快。
7、buf.length
返回Buffer实例对象在字节数上分配的内存量。 注意,这并不一定反映 buf 内可用的数据量。
8、buf.toString([encoding[, start[, end]]])
根据 encoding 指定的字符编码解码 buf 成一个字符串。 start 和 end 可传入用于只解码 buf 的一部分。
9、buf.fill(value[, offset[, end]][, encoding])
第一个入参value为填充buf的值,第二和第三个参数为填充起始和结束的位置,如果不传,默认为全部填充。第四个参数为value的字符编码。
10、buf.equals(otherBuffer)
比较两个Buffer实例对象,如果 buf 与 otherBuffer 具有完全相同的字节,则返回 true,否则返回 false。
11、buf.indexOf(value[, byteOffset][, encoding])
第一个参数为需要搜索的值,第二个参数为搜索的起始位置, 默认为0。
12、buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])
第一个参数为要拷贝进的 Buffer。