node基础_ Buffer(缓冲区)
buffer缓冲区:
buffer的结构和数组很像,操作的方法也和数组类似。
数组中不能存二进制的文件,而buffer就是专门用来存储二进制的数据。
使用buffer不需要引入模块,直接使用即可。
在buffer中存储的都是二进制数据,但是在显示时都是以16进制显示的。(gbk编码下1个汉字占两个字节,utf下占用3个字节)。
buffer数组中的每个元素的范围都是00-ff。即:0-255。因为255是11111111,所以256则操过了这个数值大小了。
计算机中,一个0或者一个1我们称为一个二进制位(比特位)
8个二进制位(bit)称为1个字节(Byte)。
buffer数组中的一个元素,占用的就是内存的1个字节。
buffer的大小一旦确定,则不能修改,buffer实际上是对底层内存的直接操作,也就是声明一片连续的内存空间给这个数组,如果进行长度改变,那么后面的连续的内存空间可能是已经被别的数组占用了。
从结构上看Buffer非常像一个数组,它的元素为16进制的两位数。
实际上一个元素就表示内存中的一个字节。
实际上Buffer中的内存不是通过JavaScript分配的,而是在底层通过C++申请的。
也就是我们可以直接通过Buffer来创建内存中的空间。
Buffer的操作
使用Buffer保存字符串
let str = "hello world";
let buf = Buffer.from(str , "utf-8");
创建指定大小的Buffer对象
let bufferArray2= Buffer.alloc(1024);
//赋值
bufferArray2[0]=0xaa;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!