Node.js基础知识1.5

Buffer缓冲区

  1. buffer可以在(stream)中与二进制数据进行交互操作
  2. 暂时存放I/O数据的内存
  • 创建buffer对象
 /* 
Buffer.alloc(size[, fill[, encoding]]):
返回一个指定大小的 Buffer 实例,如果没有设置 fill,则默认填满 0
*/

// 创建一个长度为 10、且用 0 填充的 Buffer。
const buffer1 = Buffer.alloc(10);

//也可以指定一个数进行填充
const buff = Buffer.alloc(10,2);
console.log(buff);


//输出结果
<Buffer 02 02 02 02 02 02 02 02 02 02>

// 创建一个长度为 10、且未初始化的 Buffer。
// 这个方法比调用 Buffer.alloc() 更快,
// 但返回的 Buffer 实例可能包含旧数据,
// 因此需要使用 fill() 或 write() 重写。

//Buffer.allocUnsafe(size): 返回一个指定大小的 Buffer 实例,
//但是它不会被初始化,所以它可能包含敏感的数据
const buffer3 = Buffer.allocUnsafe(10);

  • 缓冲区写入数据
// 数据写入缓冲区
/**
 * 
 * buf.write(string, offset, length, encoding)
 *   1.string 写入缓冲区的字符串
 *   2.offset:开始写入的索引值,默认为0
 *   3.length:写入的字节数
 *   4.encoding:使用的编码
 */


var len = buffer1.write("Hello,Word!","utf-8");
console.log(len);
// 从缓冲区读取数据
console.log(buffer1.toString());

const buffer2 = Buffer.alloc(10,1);
// 填充指定数据
buffer3.fill(2);




// Buffer.from(array): 返回一个被 array 的值初始化的
//新的 Buffer 实例(传入的 array 的元素只能是数字,不然就会自动被 0 覆盖)

var buf = Buffer.from([1,2,3,4]);
console.log(buf);

  • Buffer转换为json对象
// 将Buffer转换为JSON对象
const buf1 = Buffer.from([1,2,3,4,5]);
const json = JSON.stringify(buf1);
console.log(json);

//输出结果
{"type":"Buffer","data":[1,2,3,4,5]}




//解析Json,转化为Buffer对象
const copy = JSON.parse(json,(key,value)=>{
    return value && value.type === 'Buffer' ? Buffer.from(value.data):value;
});


结果
<Buffer 01 02 03 04 05>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值