//buffer用来创建一个专门存放二进制数据的缓存区
//因为js语言自身只有字符串数据类型,没有二进制数据类型
//v6.0之前:new buffer() 后:Buffer.from()
//第一个参数是普通字符串
const
buff =
Buffer.
from(
'A');
//输出hex编码的字符串
//console.log(buff.toString('hex'));
//返回一个指定大小的buffer实例
const
buff1 =
Buffer.
alloc(
10);
// 创建一个长度为 10、且用 0x1 填充的 Buffer。
const
buf2 =
Buffer.
alloc(
10,
1);
// 创建一个长度为 10、且未初始化的 Buffer。
// 这个方法比调用 Buffer.alloc() 更快,
// 但返回的 Buffer 实例可能包含旧数据,
// 因此需要使用 fill() 或 write() 重写。
const
buf3 =
Buffer.
allocUnsafe(
10);
// 创建一个包含 [0x1, 0x2, 0x3] 的 Buffer。
const
buf4 =
Buffer.
from([
1,
2,
3]);
// 创建一个包含 UTF-8 字节 [0x74, 0xc3, 0xa9, 0x73, 0x74] 的 Buffer。
const
buf5 =
Buffer.
from(
'tést');
// 创建一个包含 Latin-1 字节 [0x74, 0xe9, 0x73, 0x74] 的 Buffer。
const
buf6 =
Buffer.
from(
'tést',
'latin1');
//写入缓冲区 参数:字符串,开始处索引,长度,编码
console.
log(
buff1.
write(
"www.runoob.com"))
//buff1只有10的空间 只能写入10个字节
//读取数据 参数:编码,开始位置,结束位置
//console.log(buff1.toString());
//转换为json
//console.log(buff1.toJSON());
//缓冲区合并
var
buff3 =
Buffer.
concat([
buff,
buff1])
//console.log(buff3.toString())
//缓冲区比较 result<0:buff在buff1前,=0相同,>0在后
var
result =
buff.
compare(
buff1);
//console.log(result)
//拷贝缓冲区 参数:拷贝对象,开始位置,结束位置,拷贝长度
buff1.
copy(
buff)
//剪切缓冲区 参数:开始位置,结束位置
var
buff2 =
buff1.
slice(
0,
2)
//缓冲区长度:buff.length