Skip to content

缓冲器 Buffer

  • 它是一个类似于数组的对象,用于存储数据(存储的是二进制数据,比如图片,视频等)
  • Buffer 的效率很高,存储和读取很快,它是直接对计算机的内存进行操作
  • Buffer 的大小一旦确定了,不可修改
  • 每个元素占用内存的大小为 1 字节 (8 位 bit)
  • Buffer 是 Node 中的非常核心的模块,无需下载、无需引入,直接即可使用

基础使用

Buffer 是一个类或者构造函数。

javascript
// 1. 创建一个 Buffer 实例 (不被推荐)
const buf1 = new Buffer(10);
console.log(buf); // <Buffer 00 00 00 00 00 00 00 00 00 00>
// 在堆内开辟空间,清理 (性能最差)

// 2. Buffer.alloc()
const buf2 = Buffer.alloc(10); // <Buffer 00 00 00 00 00 00 00 00 00 00>
// 在堆内开辟一块没用过的空间 (性能稍好)

// 3. Buffer.allocUnsafe()
const buf3 = Buffer.allocUnsafe(10); // <Buffer 12 00 34 00 00 00 00 23 00 00>
// 在堆内随机开辟一块空间,可能被用过 (性能最好)

将数据存入 Buffer 实例。

javascript
const buf = Buffer.from('hello, world');
console.log(buf); // <Buffer 68 65 6c 6c 6f 2c 20 77 6f 72 6c 64> 存储为 16 进制
console.log(buf.toString());