Node.js API实例讲解——Buffer的读取方法
参看上一节“Buffer的写入数据”,本节的概念与上节相同。同时写方法和读方法是一一对应的。下面简单举例说明Buffer的读取操作。
Buffer的读取方法
参看上一节“Buffer的写入数据”,本节的概念与上节相同。同时写方法和读方法是一一对应的。下面简单举例说明Buffer的读取操作。
buf.readUInt8(offset, [noAssert])
return 返回读取到的Number。 offset 参数,读取的起始位置,不可省略。 noAssert[可选]参数, 默认false当超出buf的范围时会抛出异常, 设置true超出buf范围不会抛出异常,读取范围内的byte,丢弃超出的部分。
例
var buf = new Buffer(8); buf.fill(0); buf.writeUInt8(12,0); console.log(buf.readUInt8(0)); // 12 buf.writeUInt16LE(12,0); console.log(buf.readUInt16LE(0)); // 12 buf.writeUInt16BE(12,0); console.log(buf.readUInt16BE(0)); // 12 buf.writeUInt32LE(12,0); console.log(buf.readUInt32LE(0)); // 12 buf.writeUInt32BE(12,0); console.log(buf.readUInt32BE(0)); // 12
buf.copy(targetBuffer, [targetStart], [sourceStart], [sourceEnd])
可以通过copy方法读取一个buffer的数据拷贝到另一个buffer对象内。
targetBuffer参数表示拷贝到的目标buffer。
targetStart[可选]表示拷贝targetBuffer的起始位置,默认 0 。
sourceStart[可选]表示原buffer拷贝的起始位置,默认 0 。
sourceEnd[可选] 表示原buffer拷贝的结束位置,默认buf.length 。
例1
var sourceBuf = new Buffer("世界你好"); var targetBuf = new Buffer(6); sourceBuf.copy(targetBuf,0,3,9); console.log(targetBuf.toString()); // 打印 "界你"
详细说明
字符串 世 界 你 好 bytes e4 b8 96 e7 95 8c e4 bd a0 e5 a5 bdgodgoogoglook sourceBuf.copy(targetBuf,0,3,9); e7 95 8c e4 bd a0 六个字节是最终被拷贝的bytes
例2,不带参数
var sourceBuf = new Buffer("世界你好"); var targetBuf = new Buffer(6); var targetBuf2 = new Buffer(9); sourceBuf.copy(targetBuf); sourceBuf.copy(targetBuf2); console.log(targetBuf.toString()); // 打印 "世界" console.log(targetBuf2.toString()); // 打印 "世界你"
很赞哦! ( 1
)