用于处理二进制的数据。Buffer():用于操做二进制数据javascript
javascript 字符串是以utf-8的编码存储的,处理二进制的能力很弱。而网络层对于不一样资源的请求,响应,甚至是文件 都是以二进制的形式交互的。html
http://javascript.ruanyifeng.com/nodejs/buffer.htmljava
Buffer
对象是Node处理二进制数据的一个接口。它是Node原生提供的全局对象,能够直接使用,不须要require('buffer')
。node
JavaScript比较擅长处理字符串,对于处理二进制数据(好比TCP数据流),就不太擅长。Buffer
对象就是为了解决这个问题而设计的。它是一个构造函数,生成的实例表明了V8引擎分配的一段内存,是一个相似数组的对象,成员都为0到255的整数值,即一个8位的字节。数组
Buffer
对象与字符串的互相转换,须要指定编码格式。目前,Buffer对象支持如下编码格式。网络
流是以buffer的形式存在,这样更高效。函数
stream是基于事件机制工做的。流在各个阶段的状态 均可以被监听到。ui