buffer是一个全局类,不需要引用,他对2进制数据处理的非常好。
1.创建buffer类
buf=new Buffer(size)
size表示buffer大小
buf.fill(value,[start],[end]) 初始化buf
利用数组创建buffer
buf=new Buffer([11,12,13,14])
利用字符串创建创建buffer
buf=new Buffer(str,[encoding])
字符串长度与缓冲区长度
利用下标对字符串、Buffer修改
可以通过下标取出字符串。缓冲区里的所对应的数据
也可以对其重新赋值,但是字符串不能被修改、缓冲区的数值可以被修改
字符串。缓冲区的方法
buf没有像字符串中那么多的方法如indexOf等等,但是buf有slice方法,取出这个buf位置的数据
对取出的数据进行更改,会更改原有的buff,这个取出来的不是赋值,而是共享原来的buf
buffer转字符串
buf.toString('utf-8')
参数默认utf-8
string_decoder
nodejs提供一个模块string_decoder,该模块提供了buffer转string功能
我们先引用该模块
var StringDecoder=require('string_decoder').StringDecoder
var decoder=new StringDecoder('utf-8')
decoder.write(buff);
buff里写入字符串,替换
可见 buf.write(value,[start],[length],[encoding])
要把value写到原来的buff里,start表示开始写的位置,默认原buff的0,length为原来的buff的length
buffer 转数字
在js中numner类型
buff转json json转buff
buf->json
JSON.stringify(buf)
json->buf
JSON.parse(json.data)
辅助一个buff到另一个buff上去
copy 把bufcopy到buf1上去
buf.copy(buf1,[buf1的start位置],[原buf要copy开始位置],[原buf要copy结束位置])
Buffer类的方法
isBuffer
concat
isEncoding
byteLength