缓冲区操作

来源:互联网 发布:js获取flash播放时间 编辑:程序博客网 时间:2024/06/14 15:28
/** * Created by admin on 2017/11/1. *///JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。//但在处理像TCP流或文件流时,必须使用到二进制数据。//Buffer类似于一个整数数组,专门用来创建一个存放二进制数据的缓存区。//  1. 创建Buffer类的方法var buf1 = new Buffer(10);var buf2 = new Buffer([10, 20, 30, 40, 50]);var buf3 = new Buffer("创建Buffer的字符串", "utf-8");//  2. 写入缓冲区// buf.write(string, offset, length, encoding)//参数依次为写入字符串,缓冲区开始写入索引,写入字节数,编码;返回实际写入长度var buf = new Buffer(256);var len = buf.write('123456789abc');console.log("写入字节数 : " + len);//  3. 从缓冲区读字节// buf.toString(encoding, start, end)buf = new Buffer(26);for (var i = 0; i < 26; i++) {    buf[i] = i + 97;  //新的缓冲区写入方法}console.log(buf.toString('ascii'));       // 输出: abcdefghijklmnopqrstuvwxyzconsole.log(buf.toString('utf8', 0, 5));    // 输出: abcdeconsole.log(buf.toString(undefined, 0, 5)); // 使用 'utf8' 编码, 并输出: abcde//  4. Buffer转化为JSONvar buffer = new Buffer("buffer string");var json = buffer.toJSON();console.log(json);//  5. 缓冲区合并//Buffer.concat(list, totalLength)var buffer1 = new Buffer('buffer1 content  ');var buffer2 = new Buffer('buffer2 content');var buffer3 = Buffer.concat([buffer1, buffer2]);console.log("buffer3 内容: " +buffer3.toString());//  6. 缓冲区比较  (Node.js v0.12.2)// buf.compare(otherBuffer) 返回数字x表示bufotherbuffer之前(x<0)或之后(x>0)或相同(x=0var result = buffer1.compare(buffer2);if(result<0){    console.log(buffer1 + "  " + buffer2 + "之前");}else if(result == 0){    console.log(buffer1 + "  " + buffer2 + "相同");}else {    console.log(buffer1 + "  " + buffer2 + "之后");}//  7. 拷贝缓冲区// buf.copy(targetBuffer,targetStart,sourceStart,sourceEnd)  buf是被拷贝的缓冲区var buffer4 = new Buffer(17);buffer1.copy(buffer4);console.log("赋值的buffer4 :"+buffer4);//等价于 console.log(buffer4.toString());//  8. 缓冲区剪裁//buf.slice(start,end);var buffer5 = buffer1.slice(0,6);console.log("剪裁的buffer5 :"+buffer5);//  9. 缓冲区长度//buf.length;console.log("buffer1的长度为:"+buffer1.length);
原创粉丝点击