准备知识
计算机只能识别 0
和 1
(因为计算机只认识通电和断电两种状态) 所有存储在计算机上的数据都是以 0
和 1
组成的(数据越大0和1就会越多)
计算机中的度量单位
1 B(Byte字节) = 8 bit(位)
- 00000000 就是一个字节
- 111111111 也是一个字节
- 10101010 也是一个字节
- 任意
8
个0
或1
的组合都是一个字节 - 1 KB = 1024 B
- 1 MB = 1024KB
- 1 GB = 1024MB
什么是 Buffer
Buffer 是 NodeJS 全局对象上的一个类, 是一个专门用于存储字节数据的类, NodeJS 提供了操作计算机底层的API, 而计算机底层只能识别 0
和 1
, 所以就提供了一个专门用于存储字节数据的类
创建一个 Buffer 对象
创建一个指定大小的 Buffer
,语法如下:
Buffer.alloc(size[, fill[, encoding]])
let buf = Buffer.alloc(5);
console.log(buf);
通过 console.log();
输出 Buffer 会自动将存储的内容转换成16进制再进行输出
创建一个指定大小的 Buffer
同时指定存储的内容
let buf = Buffer.alloc(5, 17);
console.log(buf);
根据数组或字符串创建一个 Buffer 对象
语法如下:
Buffer.from(string[, encoding])
let buf = Buffer.from("abc");
console.log(buf);
let buf = Buffer.from([1, 3, 5]);
console.log(buf);
console.dir(buf);
Buffer 对象本质
Buffer 本质就是一个数组,所以说可以像数组一样来操作 Buffer 中存储的内容如下所示:
let buf = Buffer.from([1, 3, 5]);
buf[0] = 6;
console.log(buf);
console.log(buf);