Buffer(缓冲器)
Buffer对象表示固定长度的字节序列,Buffer是Unit8Array的子类。
- Buffer的结构和数组很像,操作的方法也和数组类似
- 数组中不能存储二进制的文件,而buffer就是专门用来存储二进制数据
- 使用buffer不需要引入模块,直接使用即可
- 在buffer中存储的都是二进制数据,但是在显示时都是以16进制的形式显示(二进制显示的太长了,不方便显示)
- buffer中每一个元素的范围是从00 - ff (即:0-255) (即:00000000-11111111),buffer中的一个元素占用一个字节(8bit)。buffer.length输出的是占用内存的大小。
创建Buffer
1. 利用字符串创建buffer:Buffer.from
let str = "RTSP"
let buf = Buffer.from(str)
console.log(buf) // <Buffer 52 54 53 50>
2. 使用Buffer方法创建: Buffer.alloc
let buf = new Buffer(10)
// OR
let buf = Buffer.alloc(10)
3. Buffer.allocUnsafe(size)
Buffer.allocUnsafe和Buffer.alloc的最大区别是使用allocUnsafe函数申请到的内存空间是没有被初始化的,也就是说可能还残留了上次使用的数据,因此会有数据安全的问题。allocUnsafe函数接收一个size参数作为buffer区域的大小:
const buff = Buffer.allocUnsafe(5)
console.log(buff)
// Prints (实际内容可能有出入): <Buffer 8b 3f 01 00 00>
创建buffer的时候实际上是为buffer分配内存连续的空间,如果在运行的时候再添加空间就不一定是连续空间了,这样buffer就不好维护了。
转换为字符串
buf.tostring() // 将缓冲区中的数据转换为字符串
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。