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() // 将缓冲区中的数据转换为字符串

看见了
840 声望13 粉丝

前端开发,略懂后台;