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;
posted @ 2022-03-22 16:58  青仙  阅读(128)  评论(0编辑  收藏  举报