-
Node.js Buffer(缓冲区)
- Buffer和数组的结构的非常类似,Buffer是用来存储二进制数据
- 从结构上看 Buffer 非常像一个数组,它的元素为 16 进制的两位数
- Buffer 中的内存不是通过 JavaScript分配的,而是在底层通过 C++ 申请的
- 我们可以直接通过 Buffer 来创建内存中的空间。
-
Buffer的方法
-
Buffer的操作
-
使用 Buffer 保存字符串
let str = "Hello Buffer"; let buf = Buffer.from(str); console.log(buf.toString());
-
创建指定大小的 Buffer 对象
let buf = 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]);
- 支持的编码
-
Buffer 写入操作
- 向缓冲区中写入字符串
- buf.write(string[, offset[, length]][, encoding])
- 换指定索引位置的数据
- buf [index]
- 将指定值填入到缓冲区的指定位置
- buf.fill(value[, offset][, end])
- 向缓冲区中写入字符串
-
Buffer 读取操作
- 将缓冲区中的内容,转换为一个字符串返回
- buf.toString ([encoding[, start[, end]]])
- 读取缓冲区指定索引的内容
- buf[index]
- 将缓冲区中的内容,转换为一个字符串返回
-
-
Buffer 操作实例
//实例 1
let buf = Buffer.from("Hello Buffer");
console.log(buf.toString());
//实例 2
let buf = Buffer.alloc(256);
let len = buf.write("www.XXX.com");
console.log("写入字节数 : "+ len);
console.log("写入内容 : "+ buf.toString());