Buffer

缓存区Buffer:是暂时存放 输入输出数据的一段内存

js只有字符串数据类型,没有二进制类型数据,在处理TCP+文件流的时候,必须是二进制的数据

nodejs中提供了buffer对象来处理二进制数据的操作

一个固定内存分配的全局对象,也就是说放到缓存区中的字节数需要提前明确

 

什么是字节:

  • 字节(Byte)是计算机存储时的一种计量单位,一个字节等于8位二进制数
  • 一个位就代表一个0或1,每8个位(bit)组成一个字节(Byte)
  • 字节是通过网络传输信息的单位
  • 一个字节最大值十进制数是255

// utf-8中:一个汉字占3个字节  24位

// 数组里存的是地址  而不是具体的值

eg:

  var a = [ 1 , 2 ];

  var arr =  [ a , 1 , 2 ];

  var newarr = arr.slice(0);

  a[0] = 100;

  consoe.log( arr )         // [ [ 100 , 2 ] , 1 , 2 ]

----------------------------------------------------------------------------------------

// global.Buffer console.log(Buffer)

// buffer可以转成字符串

buffer 是固定大小,定义好大小后不可更改     new Buffer(6)
1个字节等于8个二进制位 8 bit = 1 byte , 1个位代表一个0或者1

//任意进制转十进制
console.log(parseInt("11111111",2)); // 二进制转十进制
console.log(parseInt("255",10)); // 十进制转十进制
console.log(parseInt("0xff",16)); // 十六进制转十进制

//十进制转任意进制
var x = 3;
var y = 5;
var d = 8;
x.toString(2); //十进制转2进制
y.toString(16); //十进制16进制
d.toString(32); //十进制转32进制
console.log(x+"----"+y+"----"+d);

// 创建 new Buffer(size)
var buf1 = new Buffer(6); //指定buffer的长度   长度不能超过255 ,  256的话就取256的模
console.log(buf1);
buf1[0] = 0; //
buf1.fill(0); // 清空buffer
console.log(buf1);


// 数组创建 new Buffer(arr)
// 数组里一定放的是一个数字,范围在0~255之间
var buf2 = new Buffer([1,2,3]);
console.log("new一个数组:");
console.log(buf2);

// 字符串创建
// new Buffer(str , [encoding]);
var buf3 = new Buffer("abc"); //97 98 99 默认 utf8 编码
console.log( buf3 );

//字符集:多个字符的集合,常见字符集名称:ASCII字符集、GB2312字符集、Unicode字符集
//编码:是字符集在计算机中存储的方式 ,定义如何去存储字符集。eg:utf-8

 

 /*-----------------*/

var buf1 = new Buffer("小");
var buf2 = new Buffer("陌");
var res = new Buffer(6);
 
// 合并buffer
Buffer.concat( [buf1,buf2], [buf1,buf2].length );

// 复制buffer
//Buffer.copy( targetBuffer , targetstart , sourcestart , courceend );
buf1.copy(res,0,0,3);
buf2.copy(res,3,0,3);
console.log(res.toString());

//判断是否是对象
var t = Buffer.isBuffer(buf1);
console.log( "判断是否是对象: "+ t );

// 获取字符的长度
var s = "我是小米";
console.log(s.length);
var by = Buffer.byteLength(s);
console.log( "获取字符的长度: "+ by );

 

posted @ 2017-03-03 13:23  陌悠尘  阅读(412)  评论(0编辑  收藏  举报