Node.js Buffer库基础函数

缓冲区
JS本身并没有二进制数据类型,所以需要用buffer库来处理二进制数据

使用:

const buf = Buffer.from('runoob','ascii');
//输出72756e6f6f62
console.log(buf.toString('hex'));
//输出base64数据
console.log(buf.toString('base64'));

写入缓冲区

buf.write(string[, offset[, length]][, encoding])

● string为字符串
● offset为索引值
● length为写入的字节数
● encoding使用的编码
● 函数返回的值为实际写入的大小,空间不足只会返回部分写入的字符串大小

buf = Buffer.alloc(256);//指定一个缓冲区的大小
len = buf.write('www.runoob.com');

读取缓冲区

buf.toString([encoding[,start[,end]]])

● encoding使用的编码,默认utf-8
● start指定开始读取的索引位置,默认0
● end结束位置,默认为缓冲区末尾
● 函数返回值=解码缓冲区数据并使用指定的编码返回字符串
实例:

buf = Buffer.alloc(26);
for(var i = 0;i<26;i++)buf[i] = i+97;
console.log(buf.toString('ascii'));//输出26个字母

Buffer转换为Json对象

buf.toJSON();

缓冲区合并

Buffer.concat(list[,totalLength])

● list用于合并的Buffer对象数组列表
● totalLength合并后对象的总长度
● 函数返回一个新buffer对象

var buffer1 = Buffer.from(('1234'));
var buffer2 = Buffer.from(('www'));
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log(buffer3.toString());//1234www

缓冲区比较

buf.compare(otherBuffer);
var buffer1 = Buffer.from('ABC');
var buffer2 = Buffer.from('ABCD');
var result = buffer1.compare(buffer2);

if(result < 0) {
   console.log(buffer1 + " 在 " + buffer2 + "之前");
}else if(result == 0){
   console.log(buffer1 + " 与 " + buffer2 + "相同");
}else {
   console.log(buffer1 + " 在 " + buffer2 + "之后");
}//ABC在ABCD之前

返回一个数字,倘若数字小于0则在比较数字之前。其他情况举反
拷贝缓冲区

buf.copy(targetBuffer[,targetStart[,sourceStart[,sourceEnd]]])

● targetBuffer要拷贝的对象
● targetStart数字可选,默认0
● sourceStart数字可选,0
● sourceEnd数字可选,0
● 无返回值

var buf1 = Buffer.from('abcdefghijk');
var buf2 = Buffer.from('RUNOOB');
buf2.copy(buf1,2);//将buf2插入到buf1上
console.log(buf1.toString());//abRUNOOBijk

裁剪缓冲区

buf.slice([start[,end]])

● start默认0
● end默认buffer.length

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值