Buffer

Buffer:

用于处理二进制的数据。Buffer():用于操作二进制数据

javascript 字符串是以utf-8的编码存储的,处理二进制的能力很弱。而网络层对于不同资源的请求,响应,甚至是文件 都是以二进制的形式交互的。

http://javascript.ruanyifeng.com/nodejs/buffer.html

Buffer对象是Node处理二进制数据的一个接口。它是Node原生提供的全局对象,可以直接使用,不需要require('buffer')

JavaScript比较擅长处理字符串,对于处理二进制数据(比如TCP数据流),就不太擅长。Buffer对象就是为了解决这个问题而设计的。它是一个构造函数,生成的实例代表了V8引擎分配的一段内存,是一个类似数组的对象,成员都为0到255的整数值,即一个8位的字节。

Buffer对象与字符串的互相转换,需要指定编码格式。目前,Buffer对象支持以下编码格式。

  • ascii
  • utf8
  • utf16le:UTF-16的小端编码,支持大于U+10000的四字节字符。
  • ucs2:utf16le的别名。
  • base64
  • hex:将每个字节转为两个十六进制字符。

Stream:

流是以buffer的形式存在,这样更高效。

stream是基于事件机制工作的。流在各个阶段的状态 都可以被监听到。

原文地址:https://www.cnblogs.com/darr/p/5861578.html