Node.js学习(4)Buffer缓冲器

概念

Buffer是一个和数组类似的对象,用于存储数据。Buffer是专门用来保存二进制数据的,(和数组、对象不同是,数组和对象保存的是基本数据类型和引用数据类型)。

特点

  • 1) 大小固定:在创建时就确定了,且无法调整
  • 2) 性能较好(效率很高):存储和读取很快,直接对计算机的内存进行操作
  • 3) 每个元素占内存大小为1字节(byte)
  • 4) Buffer是Node中的非常核心的模块,无需下载、无需引入即可使用

使用

创建Buffer

  • 1.创建一个指定size大小的Buffer实例—–即将被废弃(效率很低)
Var buf = new Buffer(size);
  • 2.创建一个指定size大小的Buffer实例
var buf = Buffer.alloc(size);  //安全,里面全是0
  • 3.创建一个指定size大小的Buffer实例
var buf = Buffer.allocUnsafe(size);   //效率最高,但不安全,可能包含旧数据,需要重写所有数据
  • 获取Buffer占用内存的空间。通过Buffer的length属性
buf.length

转换

// 相当于Buffer.alloc(size);
var buf = Buffer.allocUnsafe(size);
buf.fill(0)   //将可能出现的敏感数据用0全部填充
var buf = Buffer.allocUnsafe(10);
console.log(buf);//<Buffer 0e 00 00 00 06 02 00 00 06 00>
buf.fill(0);//<Buffer 00 00 00 00 00 00 00 00 00 00>
console.log(buf);

// 将一个字符串转换为Buffer==将一个字符串存入到Buffer中
Var str = "hello world"
var buf = Buffer.from(str);
// 将一个Buffer转换为字符串
var str = buf.toString();//为什么buffer自己不自动转换,因为如果是音频视频类的文件,自动转化的话就乱码了

发表评论

邮箱地址不会被公开。 必填项已用*标注