Node学习之Buffer(一)

17 篇文章 0 订阅

 

/*
*   Buffer类
*       一个用于更好的操作二进制数据的类
*           我们在操作文件或者网络数据的时候,其实操作的就是二进制数据流,Node为我们提供了一个更方便的去操作这种数据的类Buffer,他是一个全局的类
*       new Buffer(size);
*              size [Number] 创建一个Buffer对象,并为这个对象分配一个大小
*              当我们为一个Buffer对象分配空间大小以后,其长度是固定的,不能更改 例如:var bf=new Buffer(5);
*       new Buffer(array);
*       new Buffer(string,[encoding]);
*
*       buf.length: buffer的字节(bytes)大小
*       buf[index]:获取或者设置在指定index索引位置的8位字节内容
*       buf.write(string,[offset],[lengeh],[encoding]):根据参数offset偏移量和指定的encoding编码方式,将参数string数据写入buffer   buf.write(要写入的字符串,从Buffer对象中的第几位开始写入,写入字符串的长度,写入的字符串的编码)
*       buf.toString([encoding],[start],[end]):根据encoding参数(默认是‘UTF-8’)返回一个解码的string类型
*       buf.toJSON():返回一个JSON表示的Buffer实例。JSON.stringify将会默认调用来字符串序列化这个Buffer实例
*       buf.slice([start],[end]):返回一个新的buffer,这个buffer将会和老的buffer引用相同的内存地址,
*           注意:修改这个新的buffer实例slice切片,也会改变原来的buffer
*        buf.copy(targetBuffer,[targetStart],[sourceStart],[sourceEnd]):进行buffer的拷贝
* */
/**
 * Created by su on 2019/2/18.
 */
/*
*   Buffer类
*       一个用于更好的操作二进制数据的类
*           我们在操作文件或者网络数据的时候,其实操作的就是二进制数据流,Node为我们提供了一个更方便的去操作这种数据的类Buffer,他是一个全局的类
*       new Buffer(size);
*              size [Number] 创建一个Buffer对象,并为这个对象分配一个大小
*              当我们为一个Buffer对象分配空间大小以后,其长度是固定的,不能更改 例如:var bf=new Buffer(5);
*       new Buffer(array);
*       new Buffer(string,[encoding]);
*
*       buf.length: buffer的字节(bytes)大小
*       buf[index]:获取或者设置在指定index索引位置的8位字节内容
*       buf.write(string,[offset],[lengeh],[encoding]):根据参数offset偏移量和指定的encoding编码方式,将参数string数据写入buffer   buf.write(要写入的字符串,从Buffer对象中的第几位开始写入,写入字符串的长度,写入的字符串的编码)
*       buf.toString([encoding],[start],[end]):根据encoding参数(默认是‘UTF-8’)返回一个解码的string类型
*       buf.toJSON():返回一个JSON表示的Buffer实例。JSON.stringify将会默认调用来字符串序列化这个Buffer实例
*       buf.slice([start],[end]):返回一个新的buffer,这个buffer将会和老的buffer引用相同的内存地址,
*           注意:修改这个新的buffer实例slice切片,也会改变原来的buffer
*        buf.copy(targetBuffer,[targetStart],[sourceStart],[sourceEnd]):进行buffer的拷贝
* */

//new Buffer(size);
console.log("==========new Buffer(size);========");
var bf=new Buffer(5);
console.log(bf);
bf[1]=10;
console.log(bf);
//new Buffer(array)
console.log("==========new Buffer(array)========");
var bf=new Buffer([1,2,3]);
console.log(bf);
bf[5]=10;
console.log(bf);

//new Buffer(string,[encoding]);
console.log("===========new Buffer(string,[encoding]);===");

var bf=new Buffer("miaov","utf-8");
console.log(bf);
for(var i=0;i<bf.length;i++){
    //console.log(bf[i].toString(16)); 转成16进制格式
    console.log(String.fromCharCode(bf[i])); //转成字符串格式
}

console.log("======buf.write(string,[offset],[lengeh],[encoding])========");
var str="miaov";
console.log(new Buffer(str));
//var bf=new Buffer(3);//截取前三个
bf.write(str);
console.log(bf);
console.log("======buf.write(string,[offset])========");
bf.write(str,1);
console.log(bf);
console.log("======buf.write(string,[offset],[lengeh])========");
bf.write(str,1,3);
console.log(bf);

//buf.toString()例子:
console.log("======buf.toString()=======");
var bf =new Buffer("miaov");
console.log(bf.toString());
console.log(bf.toString("utf-8",1));
console.log(bf.toString("utf-8",1,4));

//buf.toJSON()
console.log("=====buf.toJSON()=======");
console.log(bf.toJSON());

//buf.slice([start],[end])
console.log("====buf.slice([start],[end])====")
var bf =new Buffer("miaov");
console.log(bf);
var bf2=bf.slice();
console.log(bf2);
var bf3=bf.slice(1,3);
console.log(bf3);

//buf.copy()
console.log("======buf.copy()=====");
var bf4=new Buffer(10);
bf.copy(bf4);
console.log(bf4);
console.log("======buf.copy(bf4,1)=====");
bf.copy(bf4,1);
console.log(bf4);

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值