缓冲区操作

/**
 * Created by admin on 2017/11/1.
 */
//JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
//但在处理像TCP流或文件流时,必须使用到二进制数据。
//Buffer类似于一个整数数组,专门用来创建一个存放二进制数据的缓存区。

//  1. 创建Buffer类的方法
var buf1 = new Buffer(10);
var buf2 = new Buffer([10, 20, 30, 40, 50]);
var buf3 = new Buffer("创建Buffer的字符串", "utf-8");

//  2. 写入缓冲区
// buf.write(string, offset, length, encoding)//参数依次为写入字符串,缓冲区开始写入索引,写入字节数,编码;返回实际写入长度
var buf = new Buffer(256);
var len = buf.write('123456789abc');
console.log("写入字节数 : " + len);

//  3. 从缓冲区读字节
// buf.toString(encoding, start, end)
buf = new Buffer(26);
for (var i = 0; i < 26; i++) {
    buf[i] = i + 97;  //新的缓冲区写入方法
}
console.log(buf.toString('ascii'));       // 输出: abcdefghijklmnopqrstuvwxyz
console.log(buf.toString('utf8', 0, 5));    // 输出: abcde
console.log(buf.toString(undefined, 0, 5)); // 使用 'utf8' 编码, 并输出: abcde

//  4. Buffer转化为JSON
var buffer = new Buffer("buffer string");
var json = buffer.toJSON();
console.log(json);

//  5. 缓冲区合并
//Buffer.concat(list, totalLength)
var buffer1 = new Buffer('buffer1 content  ');
var buffer2 = new Buffer('buffer2 content');
var buffer3 = Buffer.concat([buffer1, buffer2]);
console.log("buffer3 内容: " +buffer3.toString());

//  6. 缓冲区比较  (Node.js v0.12.2)
// buf.compare(otherBuffer) 返回数字x表示bufotherbuffer之前(x<0)或之后(x>0)或相同(x=0var result = buffer1.compare(buffer2);
if(result<0){
    console.log(buffer1 + "  " + buffer2 + "之前");
}else if(result == 0){
    console.log(buffer1 + "  " + buffer2 + "相同");
}else {
    console.log(buffer1 + "  " + buffer2 + "之后");
}

//  7. 拷贝缓冲区
// buf.copy(targetBuffer,targetStart,sourceStart,sourceEnd)  buf是被拷贝的缓冲区
var buffer4 = new Buffer(17);
buffer1.copy(buffer4);
console.log("赋值的buffer4 :"+buffer4);//等价于 console.log(buffer4.toString());

//  8. 缓冲区剪裁
//buf.slice(start,end);
var buffer5 = buffer1.slice(0,6);
console.log("剪裁的buffer5 :"+buffer5);

//  9. 缓冲区长度
//buf.length;
console.log("buffer1的长度为:"+buffer1.length);
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值