⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Node.js Buffer:二进制数据操作

掌握 Buffer 类的创建、读写、编码转换及实际应用场景。 · 难度:入门 · +15XP

Buffer 是什么?

Buffer 是 Node.js 用于处理二进制数据的全局类。在 JavaScript 原生没有二进制类型时,Buffer 提供了在 TCP 流、文件系统等场景下直接操作字节的能力。每个 Buffer 对应一块固定大小的内存。

创建 Buffer

// 分配 10 字节的缓冲区(默认填充 0)
const buf1 = Buffer.alloc(10);

// 从数组创建 const buf2 = Buffer.from([0x48, 0x65, 0x6c, 0x6c, 0x6f]); // Hello

// 从字符串创建(默认 utf8) const buf3 = Buffer.from('你好', 'utf8');

console.log(buf1); // console.log(buf2.toString()); // Hello console.log(buf3.toString('hex')); // e4bda0e5a5bd

读写操作

方法说明
buf.readInt8(offset)读取有符号 8 位整数
buf.writeUInt16BE(value, offset)写入无符号 16 位整数(大端序)
buf.toString(encoding)按编码转为字符串
buf.slice(start, end)返回子 Buffer(共享内存)

编码转换示例

const buf = Buffer.from('Node.js 编程', 'utf8');
console.log('UTF-8 长度:', buf.length); // 13 字节(中文占 3 字节)
console.log('Base64:', buf.toString('base64'));
console.log('Hex:', buf.toString('hex'));

// 修改内容 buf[0] = 0x4d; // 'M' 的 ASCII console.log(buf.toString()); // 'Mode.js 编程'

练习提示

在右侧代码中,尝试创建一个 8 字节的 Buffer,依次写入一个 32 位整数(0x12345678)和两个 16 位整数(0xabcd, 0xef01)。然后使用 readUInt32BEreadUInt16BE 读取并验证结果。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 135 篇
0 完成
🔥 0