Buffer(缓冲区)

什么是Buffer

因为JavaScript语言自身只有字符串数据类型,没有二进制数据类型,但在处理TCP流或文件流的的时候必须使用二进制数据,所以Node.js中定义了Buffer类,该类用来创建一个专门存放二进制数据的缓存区;

1. Buffer实例与JavaScript字符串之间的互转

Buffer实例一般用在表示编码字符的序列

let buf = new Buffer('宝宝');
console.log(buf);//e5 ae 9d e5 ae 9d
let buf1 = new Buffer([0xe5, 0xae, 0x9d, 0xe5, 0xae, 0x9d]);//因为是16进制所以前边需要带上0x 否则报错  
//所以e5 ae 9d e5 ae 9d就可以转换成宝宝
console.log(buf1.toString());//宝宝
console.log(buf.length);//打印buffer占用的多少个字符空间  6

小结:
通过let buf = new Buffer('宝宝');打印显式的字符编码(e5 ae 9d e5 ae 9d),在通过let buf1 = new Buffer([0xe5, 0xae, 0x9d, 0xe5, 0xae, 0x9d])console.log(buf.toString())打印就可以实现Buffer实例与普通JavaScript字符串之间进行转换
字符串转buffer:new Buffer('hello');
buffer转字符串:buf.toString()

2. Buffer和对象互转

  • 对象转buffer
    let buf = new Buffer(JSON.stringify({ name: '宝宝' }))
  • buffer转字符串
    let str = buf.toString()
  • 字符串转对象
    JSON.parse(str)

3. concat(拼接)方法

let buf1 = new Buffer('宝宝');
let buf2 = new BUffer('baobao');
let buf3 = Buffer.concat([buf1,buf2]);
console.log(buf3.toSting());//宝宝baobao
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐