一、Buffer的创建
Buffer在Node.js中是处理二进制数据的核心对象,常用于文件操作、网络通信等场景。以下是创建Buffer的几种常见方法:
const buf1 = Buffer.from([0x48, 0x65, 0x6c, 0x6c, 0x6f]); 创建一个包含字节数组"Hello"的Buffer对象:
const buf2 = Buffer.from('Hello', 'utf8'); 创建一个初始值为0的Buffer,长度为10:
const buf3 = Buffer.alloc(10); 将一个Buffer复制到另一个Buffer中:
const buf4 = Buffer.from('World'); const buf5 = Buffer.alloc(5); buf4.copy(buf5); 查看复制后的结果:
console.log(buf5.toString()); 二、Buffer的操作
Buffer支持读写、切片和拼接等操作:
const buf = Buffer.alloc(26); for (let i = 0; i < 26; i++) { buf[i] = i + 97; console.log(buf.toString('ascii')); 输出结果为:abcdefghijklmnopqrstuvwxyz
三、编码转换
const utf8Buffer = Buffer.from('你好', 'utf8'); const base64String = utf8Buffer.toString('base64'); console.log(base64String); 将base64字符串转换回UTF-8编码:
const backToUtf8 = Buffer.from(base64String, 'base64').toString('utf8'); console.log(backToUtf8); 输出结果为:你好
四、错误处理
try { const smallBuf = Buffer.alloc(5); smallBuf.write('This is too long!', 'utf8'); console.log(smallBuf.toString()); } catch (err) { console.error('写入失败:', err.message); } catch (err) { console.error('写入失败:', err.message); } catch (err) { console.error('写入失败:', err.message); } 错误处理是确保在Buffer操作过程中不会超出边界的重要措施。
以上示例涵盖了Buffer的基本用法,包括创建、读写、操作和编码转换。Buffer是Node.js开发中处理二进制数据的核心工具,熟练掌握它对日常开发工作至关重要。