




Buffer(缓冲器)
发表于:2026-09-08
字数统计:638 字
预计阅读3分钟
概念
Buffer 是一个类似于数组的 对象 ,用于表示固定长度的字节序列
Buffer 本质是一段内存空间,专门用来处理 二进制数据 。

特点
- Buffer 大小固定且无法调整
- Buffer 性能较好,可以直接对计算机内存进行操作
- 每个元素的大小为 1 字节(byte)

使用
创建 Buffer
Node.js 中创建 Buffer 的方式主要如下几种:
Buffer.alloc这个方法会自动清零,Buffer是内置的
js// 创建了一个长度为 10 字节的 Buffer,相当于申请了 10 字节的内存空间,每个字节的值为 0 let buf_1 = Buffer.alloc(10); //=>结果为<Buffer 00 00 00 00 00 00 00 00 00 00>Buffer.allocUnsafejs// 创建长度为 10 字节且不清零的 Buffer,可能含旧内存数据;读取、返回或写入网络前必须完整覆盖 let buf_2 = Buffer.allocUnsafe(10);Buffer.fromjs// 通过字符串创建 Buffer let buf_3 = Buffer.from("hello"); // 通过数组创建 Buffer let buf_4 = Buffer.from([105, 108, 111, 118, 101, 121, 111, 117]);
控制台通常用十六进制展示 Buffer 的字节。ASCII 字符的 UTF-8 字节值与 ASCII 码相同;非 ASCII 字符则应按指定字符编码(默认 UTF-8)编码,不能一概解释成“字母 ASCII 转十六进制”。
Buffer 与字符串的转化
我们可以借助
toString方法将 Buffer 转为字符串
js
let buf_4 = Buffer.from([105, 108, 111, 118, 101, 121, 111, 117]);
console.log(buf_4.toString()); //=>iloveyou**注意: **toString 默认是按照 utf-8 编码方式进行转换的
Buffer 的读写
Buffer 可以直接通过
[]的方式对数据进行处理。
js
let buf_3 = Buffer.from("hello");
// 读取
console.log(buf_3[1]); //=>101 十进制
// 修改
buf_3[1] = 97;
//查看字符串结果
console.log(buf_3.toString()); //=>hallo注意:
- 如果修改的数值超过
255,则超过8位数据会被舍弃 - 一个
utf-8的中文字符 一般 占3个字节
溢出问题 了解即可 用不到

修改

数值的 number.toString(2) 才表示按二进制输出。Buffer.prototype.toString() 的参数是字符编码名(如 "utf8"、"hex"、"base64"),传数字 2 不是进制转换。
中文问题:常见 BMP 汉字的 UTF-8 编码通常占 3 字节,但扩展区码点可能占 4 字节,一个用户感知字符也可能由多个码点组成;不要用“中文字数 × 3”计算通用字符串字节数,应使用 Buffer.byteLength(text, "utf8")。

计算机基础
cpu,内存,硬盘



进程
进行中的程序
程序的一次执行过程
(任务管理器)
线程

