Node.js Buffer:二进制数据操作详解
深入理解 Node.js Buffer 类,学习如何操作二进制数据。 · 难度:入门 · +15XP
什么是 Buffer?
Buffer 是 Node.js 用于处理二进制数据的全局类。在 JavaScript 中,Uint8Array 也可以处理二进制数据,但 Buffer 提供了更多与 Node.js 核心(如文件、网络)集成的便利方法。
创建 Buffer
常见创建方式:
// 分配 10 字节(初始化为 0)
const buf1 = Buffer.alloc(10);
// 从字符串创建
const buf2 = Buffer.from('Hello Node.js', 'utf8');
// 从数组创建
const buf3 = Buffer.from([0x48, 0x65, 0x6c]);读写 Buffer
Buffer 支持通过索引读写字节,也提供 readInt32LE 等方法:
const buf = Buffer.alloc(8);
buf.writeInt32LE(123456, 0); // 写入小端整数
console.log(buf.readInt32LE(0)); // 读取Buffer 与字符串转换
| 方法 | 说明 |
|---|---|
| toString() | 转为字符串(默认 utf8) |
| Buffer.from(string) | 从字符串创建 Buffer |
| toString('hex') | 转为十六进制字符串 |
性能注意
Buffer.alloc() 比 Buffer.allocUnsafe() 慢但安全(不会泄漏旧数据)。
练习提示
修改右侧代码:创建一个包含 'Node.js' 字符串的 Buffer,将其转换为 base64 编码并打印。