介绍: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. bzoj 3240: [Noi2013]矩阵游戏 矩阵乘法+十进制快速幂+常数优化

    3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 613  Solved: 256[Submit][Status] ...

  2. 【HDU3440】House Man (差分约束)

    题目: Description In Fuzhou, there is a crazy super man. He can’t fly, but he could jump from housetop ...

  3. net.sf.json在处理json对象转换为普通java实体对象时的问题和解决方案

    我使用的net.sf.json是json-lib-2.4-jdk15.jar,把json对象转换为普通java实体对象时候有个问题,josn对象转换为java对象之后,json串里面的那几个小数点的值 ...

  4. xmlns:android作用以及自定义布局属性

    要定制Android layout 中的 attributes关键是要明白android中命名空间定义如: xmlns:android="http://schemas.android.com ...

  5. linux配置Java(JDK)环境变量

    本帖最后由 zhai 于 2013-11-19 23:00 编辑 1.下载jdk Oracle官方下载地址:http://www.oracle.com/technetwork/java/javase/ ...

  6. Delphi WebService 需要注意 转

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://gang4415.blog.51cto.com/225775/251997 Web ...

  7. HDOJ/HDU 2547 无剑无我(两点间的距离)

    Problem Description 北宋末年,奸臣当道,宦官掌权,外侮日亟,辽军再犯.时下战火连连,烽烟四起,哀鸿遍野,民不聊生,又有众多能人异士群起而反,天下志士云集响应,景粮影从. 值此危急存 ...

  8. Google Picasa

    本博文的主要内容有 .Google Picasa的下载 .Google Picasa的安装 .Google Picasa的使用 Google 的免费图片管理工具Picasa,数秒钟内就可找到并欣赏计算 ...

  9. Android学习之 sildingmenu

    仿SlidingMenu Android抽屉菜单效果drawer menu - appdoll.com Android "多方向"抽屉 - 开源中国社区 自定义Android滑动式 ...

  10. Error, some other host already uses address

    rhel 5.9,在修改完网卡配置信息重启网卡之后提示如下无法激活网卡: Error, some other host already uses address 确认配置的IP地址是没有在用的,解决办 ...