Buffer类,是用来建立一个专门存放二进制数据的缓存区。数组
Buffer类,是一个能够在任何模块中使用的全局类。缓存
Buffer类使用 new 关键字建立该类的实例对象。ui
三种形式建立实例对象:编码
new Buffer(size) //对象拥有一个length属性,属性值为缓存区大小 new Buffer(array) //直接使用一个数组来初始化缓存区 new Buffer(str,[eccoding]) //直接使用一个字符串来初始化缓存区
//参数一:必须,用于初始化缓存区的字符串
//参数二:可选,用于指定文字编码格式的字符串,默认为utf
字符编码:spa
在Node.js中,一个字符串的长度 与 根据该字符串所建立的缓存区的长度并不相同。code
字符串对象一旦建立不可被修改对象
Buffer对象建立后可被修改blog
Buffer对象方法ci
fill(value,[offset],[end])字符串
toString([encoding],[start],[end])
将Buffer对象中保存的数据转换为字符串。
write(string,[offset],[length],[encoding])
向Buffer对象中写入字符串
copy(targetBuffer,[targetStart],[sourceStart],[sourceEnd])
将Buffer对象中二进制数据复制到另外一个Buffer对象中。
Buffer对象与数值对象之间的相互转换
参数一:offset 指定获取数据的起始位置,以字节为单位
参数二:noAssert 布尔值,指定是否对offset的值进行验证
Buffer对象与JSON对象之间的相互转换
能够使用 JSON.stringify()将Buffer对象中保存的数据转换为一个字符串
能够使用JSON.parse()将一个通过转换后的字符串还原为一个数组
Buffer类方法
Buffer.isBuffer(obj)
判断一个对象是否为Buffer对象。
Buffer.byteLength(string,[encoding])
计算一个指定字符串的字节数。
Buffer.concat(list,[totalLength])
用于将几个Buffer对象结合建立为一个新的Buffer对象。
若是参数一为空数组 或 参数二等于0,返回一个长度为0的Buffer对象
若是参数一为只有一个Buffer对象,返回该Buffer对象
若是参数一拥有一个以上的Buffer对象,返回被建立的Buffer对象
Buffer.isEncoding(encoding)
检测一个字符串是否为一个有效的编码格式字符串。
StringDecoder对象
将Buffer对象中的数据转换为字符串,做用与toString()相同。 对UTF8编码格式的字符串提供更好的支持。
必须加载Node.js中的string_decoder模块,才能使用。
//加载模块 var StringDecoder = require('string_decoder').StringDecoder; //建立对象 var decoder = new StringDecoder([encoding])decoder.write(buffer)