介绍: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. Contest 20140914 Mushroom写情书 字符串雙hash 後綴數組

    0111:Mushroom写情书 查看 提交 统计 提问 总时间限制:  10000ms 内存限制:  256000kB 描述 有一天,Mushroom准备向他的GF表白,为了增加表白成功率,Mush ...

  2. android 自定义命名空间

    一.统一的用户界面是可以使得应用程序更友好.要做到用户界面的统一,我们就必须用到风格(style)和主题(theme).自定义一个View的方法步骤如下:1.首先,在values文件夹下定义一个att ...

  3. development period

  4. 在多台服务器上简单实现Redis的数据主从复制

          Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构.下面我演示下怎样在多台服务器上 ...

  5. PHP按最大宽高等比例缩放图片类

    本来用phpthumb来缩略图片是十分方便的,但是最近在sae上写项目发现phpthumb在sae上保存文件时会出问题,想来实现一个简单的按最大宽高等比例缩放图片类也并不困难,于是便自己写了一个方便修 ...

  6. Spark RDD Persistence

    Spark最为重要的特性之一就是可以在多个操作(Action)之间,将一个或多个RDD关联的数据集(Dataset)以分区(Partition)为单位进行持久化(Persist)或缓存(Cache), ...

  7. 《A First Course in Probability》-chape4-离散型随机变量-方差

    为了描述一组数据的均值,我们引入了数学期望的概念,为了描述一组数据相对均值的波动情况,我们引入了方差. 能够看到,方差的本质也是一个期望,那么我们就能够利用期望的定义将其继续展开. 方差的一条重要性质 ...

  8. socket programming Max size of tcp/ip socket Buffer?

    TCP data is buffered at both sender and receiver. The size of the receiver's socket receive buffer d ...

  9. SQLyog之MySQL客户端的下载、安装和使用

    本博文的主要内容有 .SQLyog的下载 .SQLyog的安装 .SQLyog的使用 1.SQLyog的下载 1.进入SQLyog官网,  https://www.webyog.com/en    或 ...

  10. Google辅助类软件

    本博文的主要内容有 .Google辅助类软件的介绍 .重点首推!  Google软件精选管理器 1.Google辅助类软件的介绍 1.  Google软件精选管理器的下载和安装使用 2.  Googl ...