Buffer类

Buffer的基本操作:

Buffer本质上就是字节数组,Buffer对象是Node处理二进制数据的一个接口。

它是Node原声提供的全局对象,可以直接使用,不需要require('buffer')。

1.实例化:(静态方法)

Buffer.from(array)

Buffer.from(string)

Buffer.alloc(size)

2.功能方法:(静态方法

Buffer.isEncoding('编码类型(如UTF8)') 判断是否支持该编码

Buffer.isBuffer(obj)  判断是否为Buffer,传入的必须是一个对象

Buffer.byteLength() 返回制定编码的字节长度,默认UTF8

Buffer.concat()  将一组Buffer对象合并为一个Buffer对象

3.实例方法:

write()

slice()

toString()

toJson()

//实例化buf对象
let buf = Buffer.alloc(5);     //分配五个字节,并都初始化为0
console.log(buf);      //打印结果:<Buffer 00 00 00 00 00>

//字符串
let buf = Buffer.from('buffer');        //分配的是一个字符串
let buf = Buffer.from('buffer','utf-8');    //两者打印结果一样
console.log(buf);

//静态方法
console.log(Buffer.isEncoding('utf8'));    //打印结果:true
console.log(Buffer.isEncoding('gbk'));     //打印结果:false

let buf = Buffer.from('hello');
console.log(Buffer.isBuffer(buf));   //打印结果:true
console.log(Buffer.isBuffer({str:'hi'}));   //打印结果:false

let buf = Buffer.from('中国','utf8');
console.log(Buffer.byteLength(buf));   //打印结果:6  

let buf1 = Buffer.alloc(3);
let buf2 = Buffer.alloc(5);
let buf3 = Buffer.concat([buf1,buf2]);   //拼接
console.log(Buffer.byteLength(buf3));    //打印结果:8     8个字节

let buf1 = Buffer.from('hello');
let buf2 = Buffer.from('hi');
let buf3 = Buffer.concat([buf1,buf2]);   //拼接
console.log(Buffer.byteLength(buf3));    //打印结果:7     7个字节
console.log(buf3.toString());      //打印结果:hellohi

//实例方法
let buf = Buffer.alloc(5);
//第一个参数为要写入的字符串
//第二个参数为起始位置,默认为0
//第三个参数为要写入的长度,默认为字符串的长度减去起始位置
//第四个参数为编码,默认为'utf8'
buf.write('hello',2,3);    //<Buffer 00 00 68 65 6c>
buf.write('hello');        //<Buffer 68 65 6c 6c 6f>

let buf = Buffer.from('hello');
//切片:
//第一个参数为起始位置,默认为0
//第二个参数为结束位置,默认为字符串的长度
let buf1 = buf.slice(2,3);
console.log(buf1.toString());    //打印结果:l

//toJSON方法不需要显示调用,当
const buf = Buffer.from('ahello');
const json = JSON.stringify(buf);
console.log(json);    //打印结果:{"type":"Buffer","data":[104,101,108,108,111]}   将字符串转化为十进制的数值

const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);
console.log(json);    //打印结果:{"type":"Buffer","data":[1,2,3,4,5]}

 

posted @ 2019-09-26 11:38  浮华夕颜  Views(357)  Comments(0Edit  收藏  举报