学习笔记-nodejs之Buffer

Buffer

创建Buffer实例

Buffer.alloc(size)

创建字节长度为size的Buffer对象

Buffer.from(string|Buffer)

Buffer.concat(list)

list为存放多个Buffer对象的数组。将多个buffer合并在一起,并返回一个新的buffer实例

Buffer.isBuffer(val)

val是否是Buffer

Buffer.byteLength(string)

获取string的字节长度

Buffer实例常用方法

buf.fill() 填充

buf.fill(value[, offset[, end]][, encoding]),使用指定的值填充buffer,参数offset指定填充的起始位置,end为结束位置

buf.copy() 复制

souceBuf.copy(targetBuf,tartgetStart,souceStart,sourceEnd)

const buf = Buffer.from('this is a buffer');

console.log(buf.indexOf('this'));
// Prints: 0
console.log(buf.indexOf('is'));
// Prints: 2

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

截取字节数组的start至end,相当于Array.prototype.slice

buf.length

buf本身是一个字节数组,.length获取字节数组长度

buf.toString()

buf.indexOf()

demo

var str='清明时节家家雨'
var buf=Buffer.from(str)
console.log(buf) // <Buffer e6 b8 85 e6 98 8e e6 97 b6 e8 8a 82 e5 ae b6 e5 ae b6 e9 9b a8>
var str2=buf.toString()
console.log(str2) // 清明时节家家雨

console.log('str.length: ',str.length) // str.length:  7
console.log('buffer.length: ',buf.length) // buffer.length:  21


console.log("buf.indexOf('节'):", buf.indexOf('节'));// buf.indexOf('节'): 9
var tmp=buf.slice(9,15)
console.log('buf.slice(9,15).toString(): ',tmp.toString()) // buf.slice(9,15).toString():  节家
var buf2=Buffer.alloc(6)
buf2.fill(tmp)
console.log('buf2.toString()',buf2.toString())// buf2.toString() 节家


var buf3=Buffer.alloc(6)
buf.copy(buf3,0,9,16)
console.log('buf3: ',buf2.toString()) //buf3:  节家

与string相互转换

string=>buffer

var buf=Buffer.from(string)

buffer=>string

var string=buffer.toString()

与json相互转换

buffer=>json

var json = JSON.stringfy(buf)//将buf转换为json格式数据

json=>buffer

var array = JSON.parse(json)//将json转化为array数组

var buf4=Buffer.from('青草池塘处处蛙')
var jsonString=JSON.stringify(buf4)
console.log(jsonString)
//{"type":"Buffer","data":[233,157,146,232,141,137,230,177,160,229,161,152,229,164,132,229,164,132,232,155,153]}

var json=JSON.parse(jsonString)
console.log(json);
// { type: 'Buffer',
//  data:
//  [ 233,
//    157,
//    146,
//    232,
//    141,
//    137,
//    230,
//    177,
//    160,
//    229,
//    161,
//    152,
//    229,
//    164,
//    132,
//    229,
//    164,
//    132,
//    232,
//    155,
//    153 ] }
var buf5=Buffer.from(json)
console.log(buf5)
//<Buffer e9 9d 92 e8 8d 89 e6 b1 a0 e5 a1 98 e5 a4 84 e5 a4 84 e8 9b 99>

var buf5String=buf5.toString()
console.log(buf5String);
// 青草池塘处处蛙
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值