• 从结构上看Buffer非常像一个数组,它的元素为16进制的两位数。 • 实际上一个元素就表示内存中的一个字节。 • 实际上Buffer中的内存不是通过JavaScript分配的,而是在底层通过C++申请的。 • 也就是我们可以直接通过Buffer来创建内存中的空间。
• 使用Buffer保存字符串 let str = "你好"; let buf = Buffer.from(str , "utf-8"); • 创建指定大小的Buffer对象 let buf3 = Buffer.alloc(1024*8)
• Buffer与字符串间的转换 – 支持的编码: • ASCII、 UTF-8、 UTF-16LE/UCS-2、 Base64、Binary、 Hex – 字符串转Buffer • Buffer.from(str , [encoding]); – Buffer转字符串 • buf.toString([encoding] , [start] , [end]);
• 向缓冲区中写入字符串 – buf.write(string[, offset[, length]][, encoding]) • 替换指定索引位置的数据 – buf[index] • 将指定值填入到缓冲区的指定位置 – buf.fill(value[, offset[, end]][, encoding])
• 将缓冲区中的内容,转换为一个字符串返回 – buf.toString([encoding[, start[, end]]]) • 读取缓冲区指定索引的内容 – buf[index]
• 复制缓冲区 – buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]]) • 对缓冲区切片 – buf.slice([start[, end]]) • 拼接缓冲区 – Buffer.concat(list[, totalLength])