/** * 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')); // 输出: abcdefghijklmnopqrstuvwxyz console.log(buf.toString('utf8', 0, 5)); // 输出: abcde console.log(buf.toString(undefined, 0, 5)); // 使用 'utf8' 编码, 并输出: abcde // 4. Buffer转化为JSON var 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表示buf和otherbuffer之前(x<0)或之后(x>0)或相同(x=0) var 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);
缓冲区操作
最新推荐文章于 2023-02-02 20:43:38 发布