Buffer 对象
let buf = Buffer.from('鸡你太美'); console.log(buf);
输出结果:<Buffer e9 b8 a1 e4 bd a0 e5 a4 aa e7 be 8e>
返回的是十六进制数,一个中文字符占三位
let buf2 = Buffer.alloc(10); console.log(buf2)
输出结果:<Buffer 00 00 00 00 00 00 00 00 00 00>
传入的是长度,返回的是零值
创建数组
var arr = new Array('1','2','3'); console.log(arr)
输出结果:[‘1’, ‘2’, ‘3’]
var arr1 = new Array(10); console.log(arr1)
输出结果:[<10 empty items> ]
这里为 10 个空值
Buffer 类方法
查询个数
let buf = Buffer.from('鸡你太美'); console.log(buf); let buf2 = Buffer.alloc(10); console.log(buf2) console.log(buf.length); console.log(buf2.length);
创建的 buffer 对象,个数不能改变
判断编码是否支持
console.log(Buffer.isEncoding('utf8')) console.log(Buffer.isEncoding('gbk'))
输出结果:
true
false
判断是否 Buffer 对象
let buf2 = Buffer.alloc(10); console.log(Buffer.isBuffer(buf2));
输出结果:true
查看 byte 数据长度
console.log(Buffer.byteLength('鸡你太美'))
查看编码后的 byte 数据的长度,不指定编码默认 UTF-8
合并 Buffer 对象
let buf1 = Buffer.from('wolfcode'); let buf2 = Buffer.from('.cn'); let concatBuf = Buffer.concat([buf1,buf2]); console.log(concatBuf.toString());
使用 Buffer 类 concat 方法将多个 Buffer 对象合并成一个,再用 toString 函数转成字符串类型
Buffer 实例方法
写入 Buffer 数据
let buf = Buffer.alloc(10); console.log(buf); let len = buf.write('wolfcode'); console.log(len); console.log(buf); console.log(buf.toString()); console.log(buf.toJSON());
输出结果:
<Buffer 00 00 00 00 00 00 00 00 00 00>
8
<Buffer 77 6f 6c 66 63 6f 64 65 00 00>
wolfcode
{
type: ‘Buffer’,
data: [
119, 111, 108, 102,
99, 111, 100, 101,
0, 0
]
}
使用 Buffer 的实例方法 write 写入 Buffer 数据
使用 toString 方法转成字符串类型,注意:非文本信息转成字符串会乱码,没有意义
使用 toJSON 方法转成 json 类型,数据变成十进制