node学习五:Buffer缓冲器

Buffer类:

Buffer对象是Node处理二进制数据的一个接口。它是Node原生提供的全局对象,可以直接使用,不需要require(‘buffer’)。Buffer本质上就是字节数组

构造方法(类):实例化buf对象

Buffer.from(array):

let buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
console.log(buf.toString());


Buffer.from(string):

let buf = Buffer.from('hello','utf8');
console.log(buf);


Buffer.alloc(size):

let buf = Buffer.alloc(5);
console.log(buf);

静态方法:

Buffer.isEncoding() 判断是否支持该编码

console.log(Buffer.isEncoding('utf8'));
console.log(Buffer.isEncoding('gbk'));


Buffer.isBuffer() 判断是否为Buffer

let buf = Buffer.from('hello');
console.log(Buffer.isBuffer(buf));
console.log(Buffer.isBuffer({}));

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

let buf = Buffer.from('中国','utf8');
console.log(Buffer.byteLength(buf));
console.log(buf.toString());
let buf1 = Buffer.from('中国','ascii');
console.log(Buffer.byteLength(buf1));
console.log(buf1.toString());


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

3);
let buf2 = Buffer.alloc(5);
let buf3 = Buffer.concat([buf1,buf2]);
console.log(Buffer.byteLength(buf3));

let buf1 = Buffer.from('tom');
let buf2 = Buffer.from('jerry');
let buf3 = Buffer.concat([buf1,buf2]);
console.log(Buffer.byteLength(buf3));
console.log(buf3.toString());

实例方法:

write() 向buffer对象中写入内容

let buf = Buffer.alloc(5);
console.log(buf);

let buf = Buffer.alloc(5);
buf.write('hello');
console.log(buf);

let buf = Buffer.alloc(5);
buf.write('hello',2);
console.log(buf);

let buf = Buffer.alloc(5);
buf.write('hello',2,2);
console.log(buf);


slice() 截取新的buffer对象

toString() 把buf对象转成字符串

let buf = Buffer.from('hello');
let buf1 = buf.slice(1,4);
console.log(buf === buf1);//false
console.log(buf1.toString());


toJson() 把buf对象转成json形式的字符串

// toJSON方法不需要显式(强制转换)调用,当JSON.stringify方法调用的时候会自动调用toJSON方法
// const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const buf = Buffer.from('hello');
const json = JSON.stringify(buf);
console.log(json);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值