乐趣区

关于buffer:nodeBuffer

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