摘要
在js中是没有二进制类型的,但在处理tcp或者文件流时,必须使用到二进制数据,因此Node.js定义了一个Buffer类型,该类型用来创建一个专门存储二进制数据的缓存区。在Node.js中,Buffer类是随Node内核一起发布的核心库。Buffer库为Node.js带来了一种存储原始数据的办法,可以让Node.js处理二进制数据,每当需要在Node.js中处理I/O操作中移动的数据时,就有可能使用Buffer库。原始数据存储在Buffer类的实例中。一个Buffer类似于证书数组,但她对应于V8堆内存之外的一块原始内存。
创建Buffer类
Buffer可以通过多种方式创建。
写入缓存区
语法
参数描述
string:写入缓存区的字符串。
offset:缓存区开始写入的位置索引,默认为0.
length:写入的字节数,默认为buffer.length.
encoding:使用的编码,默认为utf8.
返回值
返回实际写入的大小。如果buffer空间不足,则会写入部分字符串。
一个例子:
执行
读取数据
语法
参数描述
encoding:使用编码,默认为utf8.
start:开始读取的位置索引。默认为0
end:结束位置索引,默认为缓冲区的末尾。
返回值
解码缓冲区数据并使用指定的编码返回的字符串。
一个例子
将Buffer转换为Json对象
语法
返回值
返回json对象。
一个例子
缓冲区合并
语法
参数描述
list:用于合并的Buffer对象数据列表。
totalLength:指定合并后Buffer对象的总长度。
返回值
返回一个多个成员合并的新Buffer对象。
一个例子
执行
缓冲区比较
Buffer的比较函数在Node.js v0.12.2版本引入,语法如下
参数
otherBuffer:与buf对象比较的另外一个Buffer对象。
返回值
返回一个数字,标识buf在otherBuffer之前,之后或者相同。
一个例子
console.log(buf1+" 在 "+buf2+" 之前"<span style="color: #000000;">);
}<span style="color: #0000ff;">else <span style="color: #0000ff;">if(result==0<span style="color: #000000;">){
console.log(buf1+" 与 "+buf2+" 相同"<span style="color: #000000;">);
}<span style="color: #0000ff;">else<span style="color: #000000;">{
console.log(buf1+" 在 "+buf2+" 之后"<span style="color: #000000;">);
}
拷贝缓存区
语法
参数
targetBuffer:要拷贝的Buffer对象。
targetStart:要拷贝的对象开始位置,默认0.
sourceStart:源对象开始位置,默认0
sourceEnd:源对象结束位置,默认0
无返回值。
一个例子
缓冲区裁剪
语法
参数
start:开始裁剪位置。
end:结束位置。
返回值
返回一个新的缓冲区,它和旧缓冲区执行同一块内存,但是从索引start到end的位置剪切。
一个例子
缓存区长度
语法
返回值
返回Buffer对象所占用的内存长度。
一个例子
方法参考手册
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。