nodejs中Buffer的创建和转换

buffer是用来做什么?主要是用来处理二进制文件流和TCP流的文件缓存区。我们可以将二进制流和string,json,int进行转换,也可以进行复制,或者通过自带的函数进行判断buffer的一些状态。

  创建Buffer对象(实例)

    1.使用var buffer = new Buffer(size)创建对象,然后用buffer.fill(value,[offset],[end])来初始化对象。

    2.使用var buffer = new Buffer(array)创建对象。

    3.使用var buffer= new Buffer(string,[encoding])创建对象。

  **字符串的长度和缓冲区的长度是不一样的,因为字符串是文字为单位,而缓冲区是以字节数为单位。

  

  Buffer<---->string 相互转换(实例

    buf.toString([encoding],[start],[end]);//buffer转换为字符串

    buf.write(string,[offset],[length],[encoding]);//buffer将string转换为buf并且写入现有的buffer中(这里wirte实际功能是替换!!)

    Stringdecoder类:

     解释为何使用这个类?因为我们通长会切割或者分开生产buffer,那么一段话就会被切开,这样的话使用buffer->string则会生成乱码,所以使用decoder.write(buf);则会避免这个问题。

 

  Buffer<---->int 相互转换(实例

    buf.readUInt8(offset,[noAssert])//这个函数用来读取第offset位置上的buffer数据,如果noAssert设置为true,则会判断是否offset没有越界,并且抛出异常。

    buf.wirteUInt8(value,offset,[noAssert])//这个函数用来替换第offset位置上的值。

  

  Buffer<----->JSON相互转换(实例

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

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

 

  buf1复制到buf2

    buf.copy(targetBuffer,[targetstart],[sourcestart],[sourceend]);//将buffer1复制到bufer2之中。

  

 

Buffer类的类方法:(实例

   1.isBuffer方法:

      Buffer.isBuffer(obj)   是否是一个buffer对象。

   2.byteLength方法:

      Buffer.byteLength(string,[encoding])   判断string转为buffer的长度

    3.concat方法    

       Buffer.concat(list,[totalLength])   list是一个数组,将几个buffer合为一个的orgin方法。

    4.isEncoding方法

       Buffer.isEncoding(encoding)判断当前是否是一个有效的编码格式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值