[TOC]
# Buffer(缓冲)
*Buffer*(缓冲区)是内存(通常是 RAM )中存储二进制数据的空间。在 Node.js 中,我们可以通过内置的 `Buffer` 类访问这些内存空间。缓冲区存储一个整数序列,类似于 JavaScript 中的[数组](https://www.digitalocean.com/community/tutorials/understanding-arrays-in-javascript)。与数组不同,缓冲区一旦创建就不能更改其大小。
如果您编写过 Node.js 代码,那么可能已经不经意使用了缓冲区。例如,当使用 [fs.readFile()](https://nodejs.org/api/fs.html#fs_file_system) 读取文件时,返回给[回调函数或Promise](https://www.digitalocean.com/community/tutorials/how-to-write-asynchronous-code-in-node-js)的数据是一个缓冲区对象。此外,当 HTTP 请求在 Node.js 中发出时,当客户端不能一次处理所有流时,它们返回临时存储在内部缓冲区中的数据流。
缓冲区在与二进制数据交互时非常有用,通常在较低的网络层中。它们还使您能够在 Node.js 中进行细粒度的数据操作。
```
const buf = new Buffer(255) // 分配 255 字节
buf[0] = 23; // 第一个字节写入整型数据 23
```
>[Using buffers in nodejs](https://www.digitalocean.com/community/tutorials/using-buffers-in-node-js)