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