介绍:Buffer类是一个全局类,是一个比较罕见不需要require( ‘buffer’ )就可以使用的类,Buffer类似与数组也有length, 它里面的元素为16进制的两位数,即 0-255的数值,大小一经设置不可改变。

作用: 用来处理二进制数据。

一、创建一个Buffer类有三种方法:
1.new Buffer( size );
  size是一个长度或者说是空间大小,number类型;
为buffer分配5个空间大小,里面的内容是五个随机填充的字节,长度以内的下标对应项能改变,不能像数组改变大小; 
 
2.new Buffer( Array );
  Array是一个字节数组
  

3.new Buffer( string, encoding );
  第一个传的是字符串,第二个是字符编码的类型;不同编码把字符串转换成字节效果不一样;
默认情况下编码类型是utf-8,一个字母和数字占1个字节,一个汉字占3个字节,buffer支持的编码类型有7种:
     1.ascii   2.utf8  3.utf16le 4.ucs2  5.base64  6.binary  7.hex
 
二、Buffer Api 
1. buf.write(string, [offset], [length], [encoding])
  string String类型 - 将要被写入 buffer 的数据
  offset Number类型, 可选参数,从buffer的第几位开始写入
  length Number类型, 可选参数, 写几个到buffer对象中
  encoding String类型, 可选参数, 默认: 'utf8'
 

2. buf.toString([encoding],[start],[end])
  encoding String类型, 可选参数, 默认: 'utf8'
  start Number类型, 可选参数,从第几位开始转变
  end Number类型, 可选参数, 转变到第几位,不包括结束位
 
3. buf.slice([start],[end])    类似与数组的slice

  start Number类型, 可选参数,从第几位开始切

  end Number类型, 可选参数, 切到第几位,不包括结束位

**该方法返回的是一个新的bf对象,切取的片段与老的buffer引用的是同一地址,对其中任何一个bf对象进行修改,另外一个bf也会改变;

4. buf.toJson([start],[end])  返回一个 JSON表示的Buffer实例

   

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

  targetBuffer  - 新的Buffer对象

  targetStart Number类型, 可选参数,从新的buffer的第几位开始写入

  sourceStart Number类型, 可选参数, 从老bf的第几位开始拷贝

  sourceEnd Number类型, 可选参数, 从老bf的第几位结束拷贝,不包含结束位

6.  buf.fill(string,strat,end)

  string, 填充的字符串

  start 默认是0, 从哪个地方开始被填充

  end, 可选参数 默认是bf.length, 填充到哪,不包括结束位

三、buffer提供的类方法 

1. Buffer.isEncoding('编码’),判断bf是否支持该编码

2. Buffer.isBuffer(元素),判断该元素是否是bf对象

3.Buffer.byteLength(‘字符串’,'字符编码’),返回的是字符串的字节长度

4.Buffer.concat(字节数组 ,所有bf的总字节长度)  返回一个新的bf对象

学习来源 => http://www.imooc.com/learn/637

今天就写到这了,还有buffer的著名的8kb载体,下次在写^_^    大家可以去看看这篇博客 http://www.cnblogs.com/time-is-life/p/5385855.html

如何使用node中的buffer的更多相关文章

  1. Node.js中的Buffer

    Buffer介绍 为什么要用Buffer? 在Node/ES6 出现之前,前端工程师只需要进行一些简单的额字符串或者ODM操作就可以满足业务需求了,所有对二进制数据比较陌生. 在node出现之后,前端 ...

  2. 学废了系列 - WebGL与Node.js中的Buffer

    WebGL 和 Node.js 中都有 Buffer 的使用,简单对比记录一下两个完全不相干的领域中 Buffer 异同,加强记忆. Buffer 是用来存储二进制数据的「缓冲区」,其本身的定义和用途 ...

  3. node中的Stream-Readable和Writeable解读

    在node中,只要涉及到文件IO的场景一般都会涉及到一个类-Stream.Stream是对IO设备的抽象表示,其在JAVA中也有涉及,主要体现在四个类-InputStream.Reader.Outpu ...

  4. node中的可读流和可写流

    javascript的一个不足之处是不能处理二进制数据,于是node中引入了Buffer类型.这个类型以一个字节(即8位)为单位,给数据分配存储空间.它的使用类似于Array,但是与Array又有不同 ...

  5. node中的Readable - flowing/non-flowing mode

    大家都知道在node中Readable Stream有两种模式: flowing mode和non-flowing mode. 对于flowing mode的Readable Stream, 我们是没 ...

  6. nodejs中的Buffer

    一,开篇分析 所谓缓冲区Buffer,就是 "临时存贮区" 的意思,是暂时存放输入输出数据的一段内存. JS语言自身只有字符串数据类型,没有二进制数据类型,因此NodeJS提供了一 ...

  7. node中可读流、可写流

    javascript的一个不足之处是不能处理二进制数据,于是node中引入了Buffer类型.这个类型以一个字节(即8位)为单位,给数据分配存储空间.它的使用类似于Array,但是与Array又有不同 ...

  8. 使用node中的iconv-lite实现对“gbk”格式的转码

    在window中,gbk和utf-8是最常见的两种格式,但是我们在显示的时候往往需要将GBK转换为UTF-8,我现在有一个同步读取文件的操作: const fs = require('fs'); co ...

  9. Node.js:Buffer(缓冲区)介绍及常用方法

    JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门 ...

随机推荐

  1. ARCI--做事情的重要方法论

    很多朋友都可能碰到这样的情况,有一个任务曾经开会讨论过,目标,时间,参与人都有提到,但是最终就是不了了之,没有下文了,而且后面想起来,要追究责任的时候,发现似乎都没有责任,无从追究.如果这种情况出现, ...

  2. mysql 2006

    1.在my.ini文件中添加或者修改以下两个变量:wait_timeout=2880000interactive_timeout = 2880000 关于两个变量的具体说明可以google或者看官方手 ...

  3. uva 11136 - Hoax or what

    用两个优先队列来实现,因为队列只能从一头出去: 所以维护一个数组,来标记这个队列的已经出列而另外一个队列没有出列的元素: 到时候再把他们删了就行: #include<cstdio> #in ...

  4. 如何用 React Native 创建一个iOS APP?(二)

    我们书接上文<如何用 React Native 创建一个iOS APP?>,继续来讲如何用 React Native 创建一个iOS APP.接下来,我们会涉及到很多控件. 1 AppRe ...

  5. Choose the best route

    hdu 2680:http://acm.hdu.edu.cn/showproblem.php?pid=2680 这道题值得一提的两点:在图论中注意重边问题是必须的,有向无向也是同等重要的,如这道题 f ...

  6. WINDOWS+L组合键锁定XP

    在Windows XP时工作时,我们经常要锁定计算机,当计算机被锁定后,只有重新登录才能够使用计算机,从而保证了计算机的安全. WINDOWS+L组合键锁定XP,就是键盘上右边的小窗口+L键 ,可以快 ...

  7. MySQL安装完可以使用,但是找不到对应的系统服务

    为何我用 mysqld 启动 mysql 的服务后,在系统“服务”中查不到mysql服务呢?首先声明,我的服务启动成功了,因为我可以另开一个 cmd 窗口进行mysql登录,登录后可以进行各种操作.用 ...

  8. HBase学习笔记之HFile格式

    主要看Roger的文档,这里作为文档的补充 HFile的格式-HFile的基本结构 Trailer通过指针找到Meta index.Data index.File info. Meta index保存 ...

  9. VS2013中直接浏览网页显示“无法显示此页”的可能原因

    今天在VS2013里面新建了一个空的web应用程序WebApplication1,然后新建了一个 WebForm1.aspx 直接浏览WebForm1.aspx后,网页直接显示: 在网上查询了写资料, ...

  10. 【转】Java中如何遍历Map对象的4种方法

    原文网址:http://blog.csdn.net/tjcyjd/article/details/11111401 在Java中如何遍历Map对象 How to Iterate Over a Map ...