buffer缓冲区
Buffer(缓冲区) nodejs.cn看API文档
客服发送请求到服务器,数据就存储在Buffer中,服务器返回回应,数据也存储在Buffer中
- Buffer的结构和数组很像,操作的方法也和数组类似
- 数组中不能存储二进制的文件(图片、mps3等),而buffer就是专门 用来存储二进制数据的
- 使用buffer不需要引入模块,直接使用即可
- 在buffer中存储的都是二进制数据,但是显示时都是以16进制的形式显示的,只要数字在控制台或页面中输出,一定是十进制
buffer中的每一个元素的范围是从 00-ff (0-255)
00000000 - 11111111
计算机中 一个0或1 我们称为1位(bit)
8bit = 1byte(字节)
- buffer中的一个元素,占用内存的一个字节
console.log(buf.length) //输出的是占用内存的大小、
console.log(str.length) //字符串的长度
Buffer.from()
将一个字符串转换为buffer(在buffer中存储的都是二进制数据)
var str = 'Hello 尚硅谷'
var buf = Buffer.from(str)
console.log(buf) //<Buffer 48 65 6c 6c 6f 20 41 74 67 75 69 67 75>
buf.toString()
- 将缓冲取中的数据转换为字符串,把一个buffer对象转换为字符串
var buf4 = Buffer.from('我是一段文本数据')
console.log(buf4) //<Buffer e6 88 91 e6 98 af e4 b8 80 e6 ae b5 e6 96 87 e6 9c ac e6 95 b0 e6 8d ae>
console.log(buf4.toString()) //我是一段文本数据
Buffer.alloc()
- 创建一个指定大小的buffer
buffer的构造函数已弃用
//var buf2 = new Buffer(10) //10个字节的buffer
1.创建一个buffer
var buf2 = Buffer.alloc(10)
2.通过索引,来操作buf中的元素
buf2[0] = 88
buf2[1] = 255
buf2[2] = 0xaa //添加一个16进制的
buf2[3] = 556 //只取8位的二进制数值,超出的从前面舍去
buf2[10] = 'asd' //不报错也没效果(角标越界)
console.log(buf2) //<Buffer 58 ff aa 00 00 00 00 00> 转换成了16进制的
console.log(buf2[2]) // 170 只要数字在控制台或页面中输出,一定是十进制
console.log(buf[2].toString(16)) //调用Number类型的toString()方法可以传一个参数,表示输出的进制
- buffer的大小一旦确定,则不能修改,Buffer实际上是对底层内存的直接操作
Buffer.allocUnsafe()
- 创建一个指定大小的buffer,但是buffer中可能含有敏感数据
var buf3 = Buffer.allocUnsafe(10)
console.log(buf3) //可能含有之前用过的数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)