其中以16进制显示2进制数据
创建Buffer对象
三种创建方法
将缓存区大小指定为参数
1
new Buffer(size)
初始化缓存区
1
buf.fill(value, [offset], [end])
第一个参数为填充数值,第二个参数为填充开始位置,第三个为结束位置
使用数组来初始化
1
new Buffer(array)
使用字符串来初始化缓存区
1
new Buffer(str,[encoding])
第一个参数为初始化所需的字符串,第二个为文字编码格式组字符串,默认“utf8”
字符串长度与缓存区长度
- 字符串长度是字的个数,缓存区长度为字节数
- Buffer的slice方法不会复制数据,而是共享数据
Buffer与字符串相互转换
- toString方法,将Buffer对象中的数据转换为字符串
1
buf.toSring([encoding], [start], [end])
第一个参数为文字编码格式,第二第三个为起始与终止位置
- write方法,向已经创建的Buffer对象写入字符串
1
buf.write(string, [offset], [length], [encoding])
第一个参数为需要写入的字符串,第二个为写入位置,起于第1+offset个字节开始到offset+length个字节结束
- StringDecoder对象的write方法,对象须安装
复制缓存数据
- 使用copy方法可以把一个Buffer的内容复制到另一个Buffer中
1
buf.copy(targetBuffer, [targetStart], [sourceStart], [sourceEnd])
Buffer类的类方法
- isBuffer判断一个对象是否为Buffer对象
1
Buffer.isBuffer(obj)
- byteLength计算一个字符串的字节数
1
Buffer.byteLength(string, [encoding])
第一个参数为要计算的字符串,第二个参数为编码方式,默认为utf8
- concat方法用于将几个Buffer对象结合创建为一个新的对象
1
Buffer.concat(list, [totalLength])
第一个参数为存放多个Buffer对象的数组,第二个参数为被创建对象的总长度
- isEncoding方法,检测一个字符串是否为一个有效的编码格式字符串
1
Buffer.isEncoding(encoding)
#node