当前位置: 首页 > 后端技术 > Node.js

Node.js中的Buffer

时间:2023-04-03 17:10:49 Node.js

Buffer简介为什么要使用Buffer?在Node/ES6出现之前,前端工程师只需要进行一些简单的字符串或ODM操作即可满足业务需求,因此对二进制数据比较陌生。Node出现后,前端工程师面临的技术场景发生了变化,可以深入到网络传输、文件操作、图像处理等领域。这些操作与二进制数据密切相关。Node中的Buffer是一个二进制数据容器,数据结构类似于数组,专门用于Node中的数据存储。CreateanewBufferBuffer.alloc(size[,fil[,encoding]])size:新创建的bufferfill的预期长度,用于预填充新创建的Buffer的值Default0encoding:默认编码格式:utf-8/*十六进制:00-ff十进制:0-255二进制:00000000-111111110/1代表一位==位8bit=1B1kb=1024B1mkb=1024Kb1GB=1024m1TB=1024GB*///2.buffer.alloc(size[,fill[,encoding]])/*类数组可以用来遍历可选下标等初始化:确定的长度不能改变填充值*/letbuffer2=Buffer.alloc(10);//创建了一个长度为10的bufferbuffer2[0]=10;//buffer可以像数组一样使用buffer2[1]=oxfc;//传入一个16进制数,直接取最后两位fcbuffer2[30]=1;//这一点不同于数组,溢出隐藏console.log(buffer2);Buffer使用新方法usesBufferBuffer.form(str):将字符串转换成bufferBuffer.alloc(size):创建指定大小的缓冲区Buffer.alloUnsafe(size):创建指定大小的缓冲区,但可能包含敏感数据。//历史方法//letbuffer=newBuffer(10);//类似Array(10)创建十个空格//console.log(buffer)////1.字符串转二进制letstr='www.zhangningle.top';letbuffer=Buffer.from(str);console.log(buffer);////将buffer转换为十进制console.log(buffer.toString())//www.zhangningle.top//将汉字转换为二进制后,一个汉字需要三个字节表示Buffer的汇总点:Buffer的结构和数组很相似,操作方法也和数组很相似。Buffer,以二进制形式存储数据,Node内置,无需导入,直接使用。