node.js Buffer(缓冲区)和concat方法

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
发布了54 篇原创文章 · 获赞 7 · 访问量 2066

猜你喜欢

转载自blog.csdn.net/baobao__/article/details/102532019