本帖最后由 blake 于 2017-8-7 08:42 编辑
- string String 类型 - 写到 buffer 里
- offset Number 类型, 可选参数, 默认值: 0
- length Number 类型, 可选参数, 默认值: buffer.length - offset
- encoding String 类型, 可选参数, 默认值: 'utf8'
根据参数 offset 偏移量和指定的 encoding 编码方式,将参数 string 数据写入buffer。 offset 偏移量默认值是 0, encoding 编码方式默认是 utf8。 length 长度是将要写入的字符串的 bytes 大小。 返回 number 类型,表示写入了多少 8 位字节流。如果 buffer 没有足够的空间来放整个 string,它将只会只写入部分字符串。 length 默认是 buffer.length - offset。 这个方法不会出现写入部分字符。 - buf = new Buffer(256);
- len = buf.write('\u00bd + \u00bc = \u00be', 0);
- console.log(len + " bytes: " + buf.toString('utf8', 0, len));
复制代码 buf.writeUIntLE(value, offset, byteLength[, noAssert])
buf.writeUIntBE(value, offset, byteLength[, noAssert])
buf.writeIntLE(value, offset, byteLength[, noAssert])
buf.writeIntBE(value, offset, byteLength[, noAssert])- value {Number 类型} 准备写到 buffer 字节数
- offset {Number 类型} 0 <= offset <= buf.length
- byteLength {Number 类型} 0 < byteLength <= 6
- noAssert {Boolean} 默认值: false
- 返回: {Number 类型}
将value 写入到 buffer 里, 它由offset 和 byteLength 决定,支持 48 位计算,例如: - var b = new Buffer(6);
- b.writeUIntBE(0x1234567890ab, 0, 6);
- // <Buffer 12 34 56 78 90 ab>
复制代码noAssert 值为 true 时,不再验证 value 和 offset 的有效性。 默认是 false。 buf.readUIntLE(offset, byteLength[, noAssert])
buf.readUIntBE(offset, byteLength[, noAssert])
buf.readIntLE(offset, byteLength[, noAssert])
buf.readIntBE(offset, byteLength[, noAssert])
offset {Number 类型} 0 <= offset <= buf.length byteLength {Number 类型} 0 < byteLength <= 6 noAssert {Boolean} 默认值: false 返回: {Number 类型}
支持 48 位以下的数字读取。 例如: - var b = new Buffer(6);
- b.writeUint16LE(0x90ab, 0);
- b.writeUInt32LE(0x12345678, 2);
- b.readUIntLE(0, 6).toString(16); // 指定为 6 bytes (48 bits)
- // 输出: '1234567890ab'
复制代码noAssert 值为 true 时, offset 不再验证是否超过 buffer 的长度,默认为 false。
|