概念
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自己不自动转换,因为如果是音频视频类的文件,自动转化的话就乱码了