Buffer类(是全局类) 是专门存放二进制数据的缓冲区。
5.1 创建Buffer类
构造函数 1 ---- 只需将缓存区大小 指定为构造函数的参数
buf = new Buffer(size)
- buf.length 查看缓存区大小
-
buf.fill(value, offset, end) 初始化缓存区中的所有内容
image.png
构造函数 2 ---- 使用一个数组来初始化缓冲区
new Buffer(array)
image.png
构造函数 3 ---- 使用一个字符串来初始化缓冲区
// encoding-----文字编码格式的字符串,默认为utf8,其他的还有 base64、ascii...
new Buffer(str, encoding)
image.png
5.2 字符串与缓冲区
字符串的长度:以文字作为单位
缓存区的长度:以字节作为单位
image.png
-
根据下标取出的数据
缓存区 buf[2] 获取的是 缓冲区中第三个字节转换为整数后的值
image.png -
字符串对象一旦创建后不可被修改,而buffer对象可以通过序号来修改其中某个字节的数据
image.png -
虽然字符串对象拥有indexOf 、出指定位置的数据。而且Buffer对象的slice对象并不是复制缓存区中的数据,而是与该数据共享内存区域,因此如果修改slice方法取出的数据,则缓存区中保存的数据也将被修改。
5.3 Buffer对象与字符串对象之间的相互转换
5.3.1. Buffer对象的toString方法
image.png
5.3.2. Buffer对象的write方法
可以向已经创建的Buffer对象中写入字符串
image.png
5.3.3. StringDecoder对象
StringDecoder对象的write 方法,可以处理 当使用多个对象分割字符串时,则可以正确地将每个Buffer对象中的数据正确地转换为字符串。
image.png
5.4 Buffer对象与数值对象之间的相互转换
5.5 Buffer对象与JSON对象之间的相互转换
在Node.js中,可以使用JSON.stringfy方法将Buffer对象中保存的数据转换为一个字符串,也可以使用JSON.parse方法将一个经过转换后的字符串还原为一个数组。
image.png5.6 复制缓存数据
copy方法
下面是将a 中的内容复制到b处
image.png
5.7 Buffer类的类方法
5.7.1 isBuffer: 用于判断一个对象是否为Buffer对象
image.png
5.7.2 byteLength 计算一个指定字符串的字节数
image.png
5.7.3 concat 方法
将几个Buffer对象结合创建为一个新的Buffer对象
image.png
5.7.4 isEncoding 用于检测一个字符串是否为一个有效的编码格式字符串
image.png
网友评论