buffer是为了操作二进制数据的缓冲区。

    举例来说,你读取一个nodejs不能理解的文件…你还想操作它,那你总的有东西来装呀…
    这个时候就是buffer了…..除此之外任何字符串或者读取到的文件你都能转成buffer来方便操作。

    Buffer在文件I/O和网络I/O中效率比字符串高,一旦在网络中传输,都需要转换为Buffer,以二进制数据传输。
    一个比较常用的应用场景是对Buffer进行了上层实现。

    对不同的socket之间传输的数据称为流。我们可以通过一个buffer对象在流中传送二进制数据,或通过unicode编码方式来传送一个字符串。两种数据最终都会被包装为数据包进行传送。
    _从这句话大概可以得知流和Buffer的关系,流可以运作在字符串和Buffer上,Buffer用了传二进制数据。

    Buffer 类的实例类似于整型数组,不过缓冲区的大小在创建时确定,不能调整。Buffer 对象不同之处在于它不经 V8 的内存分配机制,Buffer 是一个 JavaScript 和 C++ 结合的模块,内存由 C++ 申请,JavaScript 分配。