node.js之buffer缓冲区

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型

但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。

创建 Buffer 类

方法 1
创建长度为 10 字节的 Buffer 实例:
var buf = new Buffer(10);


方法 2
通过给定的数组创建 Buffer 实例:
var buf = new Buffer([10, 20, 30, 40, 50]);


方法 3
通过一个字符串来创建 Buffer 实例:
var buf = new Buffer("edu.aliyun.com", "utf-8");

buffer类有一点像数组

上面俩种形式等价?也可以利用buf[n]来获取值;

 

写入缓冲区

 

buf.write(string[, offset[, length]][, encoding])(返回的是写入值的长度)

参数描述如下

  • string - 写入缓冲区的字符串。

  • offset - 缓冲区开始写入的索引值,默认为 0 。

  • length - 写入的字节数,默认为 buffer.length

  • encoding - 使用的编码。默认为 'utf8' 

  •  

从缓冲区读取数据

buf.toString([encoding[, start[, end]]])

 

将 Buffer 转换为 JSON 对象

var buf = new Buffer('edu.aliyun.com');var json = buf.toJSON();console.log(json);

 

缓冲区合并

Buffer.concat(list[, totalLength])

缓冲区比较

var buffer1 = new Buffer('ABC');
var buffer2 = new Buffer('ABCD');
var result = buffer1.compare(buffer2);
if(result < 0) {
   console.log(buffer1 + " 在 " + buffer2 + "之前");}
else if(result == 0){
   console.log(buffer1 + " 与 " + buffer2 + "相同");}
else {
   console.log(buffer1 + " 在 " + buffer2 + "之后");}

拷贝缓冲区

buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])//拷贝给谁,(谁从哪开头),资源的起始和终止;

缓冲区裁剪

buf.slice([start[, end]])

  • start - 数字, 可选, 默认: 0

  • end - 数字, 可选, 默认: buffer.length

 

缓冲区长度

buf.length;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值