nodejs中Buffer的创建和转换

摘要:
缓冲区用于什么?它主要用于处理二进制文件流和TCP流。我们可以将二进制流转换为string、json、int或复制它,或者通过内置函数判断缓冲区的某些状态。创建一个Buffer对象(实例)1.使用varbuffer=newBuffer(size)创建一个对象,然后使用Buffer。fill(value,[offset],[end])来初始化对象。

  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)判断当前是否是一个有效的编码格式。

免责声明:文章转载自《nodejs中Buffer的创建和转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇inspect的使用安卓动态分析工具Mysql中使用JDBC流式查询避免数据量过大导致OOM下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Lua字符串及模式匹配

字符类基础函数举例介绍: string.len( ‘string’ ) string.lower( ‘string’ ) string.upper( ‘string’ ) string.rep( ‘a’ , 5 ) ==> aaaaa string.sub( ‘string’ , I , j ) string.sub(...

Delphi7中 string, AnsiString, Utf8String,WideString的区别分析(转)

Windows系统上的 Notepad.exe 打开文件后,点击“文件”菜单中的“另存为”命令,会跳出一个对话框,在最底部有一个“编码”的下拉条。里面有四个选项:ANSI,Unicode,Unicode big endian 和 UTF-8。1)ANSI是默认的编码方式。对于英文文件是ASCII编码,对于简体中文文件是GB2312编码(只针对Windows...

Solr与MySQL查询性能对比

测试环境 本文简单对比下Solr与MySQL的查询性能速度。 测试数据量:10407608     Num Docs: 10407608 普通查询 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时间。 在项目中一个最常用的查询,查询某段时间内的数据,SQL查询获取数据,30s左右 SELECT * FROM `tf_hotspotd...

【json的处理】二、Jackson的处理

目前处理json的方法有很多,这里主要总结四种方法 1. Gson方式处理json 【json的处理】一、Gson处理 2. FastJson方式处理json 【json的处理】三、FastJson的处理 3. Jackson方式处理json 【json的处理】二、Jackson的处理 4. json-flattener方式处理json 【json的处理】...

Java基础知识提要

1、简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机、冰箱等 2、简单写出Java特点,写出5个以上,越多越好 简单的、面向对象的、分布式的、安全的、稳定的、与平台无关的、可解释的、多线的、动态的语言。 3、什么是Java? JAVA:一种编程...

写入DLL文件

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime....