学习笔记-nodejs之Buffer

内容大纲

  • Buffer
    • 创建Buffer实例
      • Buffer.alloc(size)
      • Buffer.from(string|Buffer)
      • Buffer.concat(list)
    • Buffer.isBuffer(val)
    • Buffer.byteLength(string)
  • Buffer实例常用方法
    • buf.fill() 填充
    • buf.copy() 复制
    • buf.slice([start[, end]]) 截取
    • buf.length
    • buf.toString()
    • buf.indexOf()
  • demo
  • 与string相互转换
    • string=>buffer
    • buffer=>string
  • 与json相互转换
    • buffer=>json
    • json=>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) // 
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)
//

var buf5String=buf5.toString()
console.log(buf5String);
// 青草池塘处处蛙

你可能感兴趣的:(node)