1. 什么是Buffer #

2. 什么是字节 #

var sum =0;
for(var i=0;i<8;i++){
  sum += Math.pow(2,i);
}

3. 定义buffer的三种方式 #

3.1 通过长度定义buffer #

new Buffer(size);

3.2 通过数组定义buffer #

new Buffer(array);

正常情况下为0-255之间;

3.3 字符串创建 #

new Buffer(str,[encoding]);

4.buffer常用方法 #

4.1 fill方法 #

手动初始化,擦干净桌子,将buffer内容清0

buffer.fill(0);

4.2 write方法 #

string, offset, length, encoding

buffer.write('珠',0,3,'utf8');
buffer.write('峰',3,3,'utf8'); //珠峰

4.3 toString方法 #

将buffer转换成字符串类型 start end 是截取的buffer的长度

buffer.toString('utf8',3,6)

4.4 slice方法 #

buffer.slice(0,4);

截取乱码问题

var StringDecoder  = require('string_decoder').StringDecoder;
var sd = new StringDecoder;
var buffer = new Buffer('珠峰');
console.log(sd.write(buffer.slice(0,4)));
console.log(sd.write(buffer.slice(4)));

4.5 copy方法 #

复制Buffer 把多个buffer拷贝到一个大buffer上

sourceBuffer.copy(targetBuffer,targetstart,sourcestart,sourceend);

4.6 concat方法 #

Buffer.concat([buf1,buf2],length);

实现concat方法

4.7 isBuffer #

判断是否是buffer

Buffer.isBuffer

4.8 length #

获取字节长度(显示是字符串所代表buffer的长度)

Buffer.byteLength("珠峰");
buffer.length;

5.进制转换 #

base64的转换