1️⃣ Buffer
Buffer是一个和数组类似的对象,不同是Buffer是专门用来保存二进制数据的。
1️⃣ Buffer特点
什么是 Buffer
1. 它是一个【类似于数组】的对象,用于存储数据(存储的是二进制数据)。2. Buffer的效率很高,存储和读取很快,它是直接对计算机的内存进行操作。3. Buffer的大小一旦确定了,不可修改。4. 每个元素占用内存的大小为1字节。5. Buffer是Node中的非常核心的模块,无需下载、无需引入,直接即可使用
进制相关
1. 十六进制:00 - ff2. 二进制:00000000 - 11111111
计算机单位换算
1. 8位(bit) = 1字节(Byte)2. 1024Byte = 1Kb3. 1024KB = 1Mb4. 1024Mb = 1Gb
…..
1️⃣ 创建 Buffer 实例
// 常用的为一二种// 创建一个Buffer的实例对象--------性能特别差------1.在堆里开辟空间。2.清理let buf = new Buffer(10)console.log(buf)// 创建一个Buffer的实例对象--------性能比new Buffer()稍强一点------在堆中开辟一块空间(该块空间没有人用过)let buf2 = Buffer.alloc(10)console.log(buf2)// 创建一个Buffer的实例对象-------性能最好的-------在堆里开辟空间1.输出的Buffer为什么不是二进制? ----- 输出的是16进制,但是存储的是二进制吗,输出的时候会自动转16进制。2.输出的Buffer不为空? ----- 在堆里开辟空间,可能残留着别人用过的数据,所以名字是allocUnsafelet buf3 = Buffer.allocUnsafe(10)console.log(buf3)// 将数据存入一个Buffer实例let buf4 = Buffer.from('hello')console.log(buf4)console.log(buf4.toString())1.输出的为什么不是我们曾经存入的字符串?用户存储的不一定是字符串,可能是媒体类型的文件2.如何能够让输出的东西是字符串(我们能看懂的)?toString()
