Buffer是什么?
Buffer代表一个缓冲区,存储二进制数据,是字节流。我们在网络传输时,就传输的这种字节流。写文件时,也是写的字节流。
编码格式:
虽然一般的字符串是有编码格式的,比如UTF-8。但Buffer是没有编码格式的。两者可以相互转换,转换时必须指定编码格式。
目前我们在Node.js里,Buffer在转换为字符串时,toString方法的第一个参数就是编码类型,支持常见的编码格式:
utf8,多字节编码的Unicode字符,大多数文档和网页采用这种编码格式
ascii,8bit编码,一个字符占1个字节
utf16le,小端编码的unicode字符
utf16be,大端编码的unicode
ucs2,unicode编码,每个字符占两个字节
base64,Base-64字符串编码
hex,每个字节编码为两个十六进制字符
类型介绍:
1.JavaScript没有读取操作二进制数据流的机制
2.Node.js中引入Buffer使得可以操作TCP流,文件流
3.Buffer类型对象类似于数组,但是Buffer的大小是固定的,且在V8堆外分配物理内存
Buffer的大小在创建时确定,无法调整大小buf.lenght是固定的
4.全局的,不用require
如何创建:
通过Buffer.from()来创建一个Buffer对象
通过一个字节数组来创建一个Buffer对象
var array = [0x68,0x65];
var buf = Buffer.from(array);