首页 > 代码库 > node缓冲区

node缓冲区

 why?

javascript不擅长处理二进制数据而node需要处理二进制的数据,因此引入一个二进制的缓冲区来实现,它将buffer伪类的javascript API暴露给外界 它以字节为计量单位,可以设置和获取缓冲区的数据

(1)创建缓冲区

var buf = new Buffer(‘*‘,‘*‘);

参数1 缓冲区初始化的内容

参数2 使用什么编码风格创建缓冲区

var buf = new Buffer(‘hello world‘,‘UTF-8‘);

也可以这样初始化缓冲区  

var buf = new Buffer(1024); //指定缓冲区长度(在这里我们虽然没有设置缓冲区的值 但是里面存储的是一些随机的值)

(2)获取缓冲区数据和设置数据

var buf = new Buffer(1024);

console.log(buf[100]);//获取100位置的字节

buf[100] = 120;//设置100位置的字节

(3)切分缓冲区和复制缓冲区

var buffer = new Buffer(‘hello world‘);
var smallbuffer = buffer.slice(0,5);
console.log(smallbuffer.toString());//hello

切分缓冲区并没有分配新的内存,所以当父缓冲区修改的时候,子缓冲区也会得到修改  父缓冲区不会被垃圾收集处理

而复制缓冲区则不同

var buffer = new Buffer(‘hello world‘);
var smallbuffer = new Buffer(6);;

buffer.copy(smallbuffer,0,0,5);
console.log(smallbuffer.toString());//hello

(5)缓冲区解码

前面用过smallbuffer.toString()

也可以为它指定字符集

 

node缓冲区