Buffer

17 阅读1分钟

在 Node.js 中,Buffer 是一个用于处理二进制数据的类。它可以帮助你在没有字符串编码的情况下直接操作原始数据,如文件内容、网络协议中的数据等。Buffer 在 Node.js 中是一个全局对象,不需要额外的导入。它表示固定长度的字节序列,允许开发者直接操作原始内存,从而提高数据处理的效率。Buffer 类是 JavaScript 的 Uint8Array 类的子类,扩展了其方法以支持更多用例。

buffer 数据的创建

  • alloc

    创建一个指定大小的空 buffer

 let buf = Buffer.alloc(10); // 创建一个 10 字节的 buffer, 每次调用时都会将以前的空间归零
console.log(buf);
// <Buffer 00 00 00 00 00 00 00 00 00 00>
  • allocUnsafe

    创建的 buffer 可能存放旧的空间, 不会清空以前的数据, 不会归零以前的空间, 速度快, 通常用于性能要求较高的场合

let buf2 = Buffer.allocUnsafe(10);
console.log("🚀 ~ This is a result of console.log ~ ✨: ", buf2);
//🚀 ~ This is a result of console.log ~ ✨:  <Buffer 00 00 00 00 00 00 00 00 00 00>
  • from

    将字符传转换成 buffer, 也可以将数组转换成 buffer, 每个字符都会转换成 unicode 码表对应的值,存放在 buffer 中

let buf3 = Buffer.from("hello"); // 将字符传转换成 buffer, 也可以将数组转换成 buffer
console.log(buf3); // 每个字符都会转换成 unicode 码表对应的值,存放在 buffer 中
// <Buffer 68 65 6c 6c 6f>
  • toString()

    将二进制数据转换成字符串

let str = buf3.toString();
console.log(str);
// hello

buffer 的使用方式还有很多, 不用所有都记, 使用的时候可以去官网查询: nodejs.cn/api/buffer.…