在Node.js中,Buffer类是用于处理二进制数据的实用工具。它是一个全局对象,可以在所有模块中访问,而无需使用
require
引入。
更多请查看Node.js中文文档
创建Buffer对象
可以使用以下方法之一来创建一个新的Buffer对象:
-
使用字符串创建:
const buf = Buffer.from('Hello World', 'utf8');
-
使用数组创建:
const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
-
使用Buffer.alloc创建指定大小的Buffer对象:
const buf = Buffer.alloc(10);
Buffer对象的常用方法
1. Buffer.from(string[, encoding])
将一个字符串转换为Buffer对象,其中encoding
参数是可选的,用于指定字符串的编码方式,默认为utf8
。
2. Buffer.from(array)
将一个数组转换为Buffer对象。
3. Buffer.alloc(size[, fill[, encoding]])
创建一个指定大小的Buffer对象,其中fill
和encoding
参数都是可选的。fill
用于指定初始化时填充的值,默认为0,encoding
用于指定编码方式,默认为utf8
。
4. buf.toString([encoding[, start[, end]]])
将一个Buffer对象转换为字符串,其中encoding
、start
和end
参数都是可选的。encoding
用于指定编码方式,默认为utf8
,start
和end
用于指定转换的起始和结束位置。
5. buf.toJSON()
将一个Buffer对象转换为JSON对象。
6. buf.compare(otherBuffer)
比较两个Buffer对象的大小,返回 -1
、0
或1
。表示第一个Buffer对象小于
、等于
或大于
第二个Buffer对象。
7. buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])
将一个Buffer对象复制到另一个Buffer对象中,其中targetStart
、sourceStart
和sourceEnd
参数都是可选的。文章来源:https://www.toymoban.com/news/detail-485946.html
8. buf.slice([start[, end]])
提取一个Buffer对象的子集,其中start
和end
参数都是可选的。文章来源地址https://www.toymoban.com/news/detail-485946.html
示例
// 创建一个Buffer对象
const buf1 = Buffer.from('Hello World', 'utf8');
// 输出Buffer对象
console.log(buf1); // <Buffer 48 65 6c 6c 6f 20 57 6f 72 6c 64>
// 将Buffer对象转换为字符串
const str = buf1.toString('utf8');
console.log(str); // Hello World
// 比较两个Buffer对象的大小
const buf2 = Buffer.from('hello world', 'utf8');
const result = buf1.compare(buf2);
console.log(result); // -1
// 复制一个Buffer对象
const buf3 = Buffer.alloc(5);
buf1.copy(buf3, 0, 0, 5);
console.log(buf3); // <Buffer 48 65 6c 6c 6f>
// 提取一个Buffer对象的子集
const buf4 = buf1.slice(0, 5);
console.log(buf4); // <Buffer 48 65 6c 6c 6f>
到了这里,关于Node.js:Buffer基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!