1. 创建 Buffer 对象:
可以使用多种方式创建 Buffer 对象:
- 通过大小创建:
const buf1 = Buffer.alloc(10); // 创建一个包含 10 个字节的 Buffer,用 0 填充
- 通过数组创建:
const buf2 = Buffer.from([1, 2, 3]); // 通过数组创建 Buffer
- 通过字符串创建:
const buf3 = Buffer.from('Hello, World!', 'utf-8'); // 通过字符串创建 Buffer
2. 读取和写入数据:
Buffer 对象的内容可以被读取和写入:
- 读取数据:
const data = buf3.toString('utf-8'); // 将 Buffer 转换为字符串
- 写入数据:
buf1.write('Hello'); // 向 Buffer 写入数据
3. 访问和修改数据:
Buffer 对象的每个元素都是一个 8 位字节,可以通过索引访问和修改:
buf1[0] = 72; // 修改第一个字节为 ASCII 字符 'H'
4. 缓冲区长度和字节长度:
缓冲区长度指的是缓冲区占用的内存大小,而字节长度是指缓冲区中实际存储的字节数。可以使用 length 属性获取缓冲区长度,使用 byteLength 方法获取字节长度:
const length = buf1.length; // 获取缓冲区长度
const byteLength = Buffer.byteLength('Hello', 'utf-8'); // 获取字节长度
5. 比较缓冲区:
可以使用 compare 方法比较两个缓冲区的内容:
const result = buf1.compare(buf2); // 返回一个数字,表示 buf1 在排序中是位于 buf2 之前、之后还是相同
6. 拷贝缓冲区:
可以使用 copy 方法将一个缓冲区的内容拷贝到另一个缓冲区:
buf2.copy(buf1); // 将 buf2 的内容复制到 buf1 中
7. 切片缓冲区:
可以使用 slice 方法创建一个缓冲区的切片:
const slicedBuf = buf1.slice(0, 5); // 创建 buf1 的切片,包含索引 0 到 4 的字节
8. Buffer 转换为 JSON:
可以使用 toJSON 方法将 Buffer 转换为 JSON 对象:
const json = buf1.toJSON(); // 返回一个包含缓冲区内容的 JSON 对象
9. 使用 Buffer 处理流:
在处理文件流或网络流时,Buffer 经常用于处理数据的缓冲和传递。
这是关于 Buffer 的一些基础用法。需要注意的是,Buffer 在新的 Node.js 版本中已经发生了一些变化,尤其是在安全性方面。在使用时,建议查阅 Node.js 官方文档以获取最新的信息和最佳实践。
转载请注明出处:http://www.pingtaimeng.com/article/detail/13159/Node.js