Buffer
(缓冲区)主要用于处理二进制数据。其本质上是一个字节数组,也就是在内存中以连续的字节序列进行存储。
几种创建方式
方式一
const buf1 = Buffer.alloc(10)
console.log(buf1);
使用 Buffer.alloc(size, fill, encoding)
创建一个指定大小的 Buffer
对象。这里创建了一个大小为 10 字节的 Buffer
对象,并且没有初始化数据,所以它的内容是未定义的。
由于 buf1
没有初始化,它的内容将显示为一堆乱码。 <Buffer 00 00 00 00 00 00 00 00 00 00>
方式二
const buf2 = Buffer.alloc(10, 1)
console.log(buf2);
是这次用数字 1 初始化了所有的字节。所以 buf2
的内容将是十个 1。<Buffer 01 01 01 01 01 01 01 01 01 01>
方式三
const buf3 = Buffer.allocUnsafe(10)
console.log(buf3);
使用 Buffer.allocUnsafe(size)
创建一个大小为 10 字节的 Buffer
对象。这个方法是不安全的,因为它不会初始化 Buffer
中的内存,可能包含敏感数据, 也就是之前内存中的存在的数据,使用前应该手动清除内存。
方式四
const buf4 = Buffer.from('hello')
console.log(buf4);
使用 Buffer.from(array)
或 Buffer.from(string, encoding)
创建一个 Buffer
对象。这里,Buffer.from(string)
将字符串 hello
转换为一个 Buffer
对象,默认编码为 utf8
。<Buffer 68 65 6c 6c 6f>
const buf5 = Buffer.from('hello', 'utf8')
console.log(buf5);
指定编码
buff转为string
const buf5 = Buffer.from('hello', 'utf8')
console.log(buf5);
console.log(buf5.toString());
toString方法转为字符串, 但有一个前提就是本身可以转换, 否则要不就是乱码