Node.js的Buffer

Buffer又名缓冲器,是一块分配的一块内存区域,可以把它看做是一个整数数组,每个整数代表一个数据字节。Buffer数据类型引入的目的帮助开发者处理二进制数据。它与下篇将要介绍的流紧密相关。当流接收的速度比其消化的速度快时,数据会放入Buffer中。本篇主要介绍关于Buffer的操作的API。

/**
 * Buffer
 */

//创建Buffer
var buffer1 = Buffer.from("Tonny");
//打印buffer1
console.log("buffer1的值为:",buffer1.toString());
//使用索引访问
console.log("buffer1 索引0位置的值:",buffer1[0]);
//获取buffer1的长度
console.log("buffer1的长度:",buffer1.length);
//修改特定索引位置的值
buffer1[1] = 99;
console.log("buffer1的修改后的值为:",buffer1.toString());



//创建时,并使用0初始化
var buffer2 = Buffer.alloc(4);
buffer2.write("Jhon");
//打印buffer2的值
console.log("buffer2的值为:",buffer2.toString());

//创建时,不会初始化,分配的内存片段可能包含可能敏感的旧数据,因此不安全,在使用它时必须格外小心。
var buffer3 = Buffer.allocUnsafe(6);
buffer3.write("123456");
//打印buffer3的值
console.log("buffer3的值为:",buffer3.toString());


//复制
var buffer4 = Buffer.alloc(2);
buffer1.copy(buffer4,0,0,2);
//打印buffer4
console.log("buffer4的值:",buffer4.toString());

//切片:buffer 的局部视图,它不是副本:原始 buffer 仍然是真正的来源。 如果那改变了,则切片也会改变。
console.log("buffer1的前2个字符的切片:",buffer1.slice(0,2).toString());
buffer1[0]= 77;
console.log("buffer1的前2个字符的切片【buffer1修改后】:",buffer1.slice(0,2).toString());

运行结果如下:

 

Guess you like

Origin blog.csdn.net/hppyw/article/details/121834242