首页 > 代码库 > node.js的Buffer类
node.js的Buffer类
1、创建
创建一个长度为256的Buffer实例:var buf = new Buffer(256);
创建一个数组:var buf = new Buffer([10, 20, 30, 40, 50]);
创建一个字符串:var buf = new Buffer("12345", "utf-8");utf-8为编码方式,还有"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex",可选。
2、写入缓存区和从缓存区读取数据:
2.1、写入使用write函数:
buf.write(string[, offset[, length]][, encoding]).例:buf.write("12345");
string - 写入缓冲区的字符串。offset - 缓冲区开始写入的索引值,默认为 0 。length - 写入的字节数,默认为 buffer.lengthencoding - 使用的编码。默认为 ‘utf8‘ 。返回实际写入的大小。如果 buffer 空间不足, 则只会写入部分字符串。
2.2、读取使用函数toString:
buf.toString([encoding[, start[, end]]]) 例:console.log( buf.toString(‘12345‘,0,5));
encoding - 使用的编码。默认为 ‘utf8‘ 。start - 指定开始读取的索引位置,默认为 0。end - 结束位置,默认为缓冲区的末尾。解码缓冲区数据并使用指定的编码返回字符串。
2.3、代码:
var buf = new Buffer(256);
buf.write("123456");
console.log(buf.toString(‘utf-8‘,0,5));
输出:12345
3、缓存区操作:
3.1、缓存区合并:
Buffer.concat(list[, totalLength])
list - 用于合并的 Buffer 对象数组列表。totalLength - 指定合并后Buffer对象的总长度。
例:
var buf1 = new Buffer(‘hello ‘);
var buf2 = new Buffer(‘world‘);
var buf3 = Buffer.concat([buf1,buf2]);
console.log("buf3 内容: " + buf3.toString());
输出:buf3 内容:hello world
3.2、缓存区比较:
buf.compare(otherBuffer);
otherBuffer - 与 buf 对象比较的另外一个 Buffer 对象。返回一个数字,表示 buf 在 otherBuffer 之前,之后或相同。
例:
var buf1 = new Buffer(‘123‘);
var buf2 = new Buffer(‘456‘);
var result = buf1.compare(buf2);
if(result < 0) {
console.log(buf1 + " 在 " + buf2 + "之前");
}else if(result == 0){
console.log(buf1 + " 与 " + buf2 + "相同");
}else {
console.log(buf1 + " 在 " + buf2 + "之后");
}
输出:123在456之前
3.3、拷贝:
buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])
targetBuffer - 要拷贝的 Buffer 对象。targetStart - 数字, 可选, 默认: 0sourceStart - 数字, 可选, 默认: 0sourceEnd - 数字, 可选, 默认: buffer.length
例:
var buf1 = new Buffer(‘123‘); var buf2 = new Buffer(‘456‘); buf1.copy(buf2);//把buf1内的数据拷贝给buf2
console.log("buf1 content: " + buf1.toString());
console.log("buf2 content: " + buf2.toString());
输出:123 123
3.4、剪切:
buf.slice([start[, end]])
start - 数字, 可选, 默认: 0end - 数字, 可选, 默认: buffer.length返回一个新的缓冲区,它和旧缓冲区指向同一块内存,但是从索引 start 到 end 的位置剪切。
例:
var buf1 = new Buffer(‘123456‘);
var buf2 = buf1.slice(0,2);
console.log("buf2 content: " + buf2.toString());
输出:12
node.js的Buffer类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。