Open iidear opened 3 years ago
https://nodejs.org/docs/latest-v14.x/api/buffer.html
Buffer 用于表示一段固定长度的 bytes 序列。
Buffer
数值
字符串
数组
Nodejs 支持的字符编码:
utf8
utf16le
latin1
base64
hex
ascii
binary
ucs2
大端模式与小端模式
const buf = Buffer.from([0b00000000, 0b00001111]); // 以大端模式读取 16 位整型数值 buf.readInt16BE(); // 15, 即 0b0000000000001111 // 以小端模式读取 16 位整型数值 buf.readInt16LE(); // 3840, 即 0b0000111100000000
Int8 表示以 8 个 bit 存储的整型数值。Int16 表示以 16 个 bit 存储的整型数值。Int32、Int64 以此类推。
Int8
Int16
Int32
Int64
注:Buffer为 Nodejs 全局对象,buf为 Buffer 实例对象,buffer为 Buffer 模块的 export 对象。
buf
buffer
Buffer.alloc(size[, fill[, encoding]])
Buffer.allocUnsafe(size)
Buffer.allocUnsafeSlow(size)
Buffer.from(array)
Buffer.from(arrayBuffer[, byteOffset[, length]])
Buffer.from(buffer)
Buffer.from(object[, offsetOrEncoding[, length]])
Buffer.from(string[, encoding])
buf.fill(value[, offset[, end]][, encoding])
buf.write(string[, offset[, length]][, encoding])
buf.writeBigInt64BE(value[, offset])
buf.writeBigInt64LE(value[, offset])
buf.writeBigUInt64BE(value[, offset])
buf.writeBigUInt64LE(value[, offset])
buf.writeDoubleBE(value[, offset])
buf.writeDoubleLE(value[, offset])
buf.writeFloatBE(value[, offset])
buf.writeFloatLE(value[, offset])
buf.writeInt8(value[, offset])
buf.writeInt16BE(value[, offset])
buf.writeInt16LE(value[, offset])
buf.writeInt32BE(value[, offset])
buf.writeInt32LE(value[, offset])
buf.writeIntBE(value, offset, byteLength)
buf.writeIntLE(value, offset, byteLength)
buf.writeUInt8(value[, offset])
buf.writeUInt16BE(value[, offset])
buf.writeUInt16LE(value[, offset])
buf.writeUInt32BE(value[, offset])
buf.writeUInt32LE(value[, offset])
buf.writeUIntBE(value, offset, byteLength)
buf.writeUIntLE(value, offset, byteLength)
buf[index]
buf.buffer
buf.byteOffset
buf.readBigInt64BE([offset])
buf.readBigInt64LE([offset])
buf.readBigUInt64BE([offset])
buf.readBigUInt64LE([offset])
buf.readDoubleBE([offset])
buf.readDoubleLE([offset])
buf.readFloatBE([offset])
buf.readFloatLE([offset])
buf.readInt8([offset])
buf.readInt16BE([offset])
buf.readInt16LE([offset])
buf.readInt32BE([offset])
buf.readInt32LE([offset])
buf.readIntBE(offset, byteLength)
buf.readIntLE(offset, byteLength
buf.readUInt8([offset])
buf.readUInt16BE([offset])
buf.readUInt16LE([offset])
buf.readUInt32BE([offset])
buf.readUInt32LE([offset])
buf.readUIntBE(offset, byteLength)
buf.readUIntLE(offset, byteLength)
Buffer.byteLength(string[, encoding])
Buffer.compare(buf1, buf2)
buf.compare(target[, targetStart[, targetEnd[, sourceStart[, sourceEnd]]]])
Buffer.concat(list[, totalLength])
buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])
Buffer.isBuffer(obj)
Buffer.isEncoding(encoding)
buf.entries()
buf.keys()
buf.values()
buf.equals(otherBuffer)
buf.includes(value[, byteOffset][, encoding])
buf.indexOf(value[, byteOffset][, encoding])
buf.lastIndexOf(value[, byteOffset][, encoding])
buf.length
buf.subarray([start[, end]])
buf.slice([start[, end]])
buf.swap16()
buf.swap32()
buf.swap64()
buf.toJSON()
buf.toString([encoding[, start[, end]]])
buffer.transcode(source, fromEnc, toEnc)
Buffer
Buffer
用于表示一段固定长度的 bytes 序列。数值
读写转换方法字符串
读写转换方法数组
的操作读写访问二进制数据字符编码
Nodejs 支持的字符编码:
utf8
、utf16le
、latin1
base64
、hex
、ascii
binary
(Alias forlatin1
)、ucs2
(Alias ofutf16le
)Int8、Int16、Int32、Int64、BE、LE
大端模式与小端模式
Int8
表示以 8 个 bit 存储的整型数值。Int16
表示以 16 个 bit 存储的整型数值。Int32
、Int64
以此类推。Buffer 相关操作
注:
Buffer
为 Nodejs 全局对象,buf
为 Buffer 实例对象,buffer
为 Buffer 模块的 export 对象。create
Buffer.alloc(size[, fill[, encoding]])
Buffer.allocUnsafe(size)
Buffer.allocUnsafeSlow(size)
Buffer.from(array)
Buffer.from(arrayBuffer[, byteOffset[, length]])
Buffer.from(buffer)
Buffer.from(object[, offsetOrEncoding[, length]])
Buffer.from(string[, encoding])
write
buf.fill(value[, offset[, end]][, encoding])
buf.write(string[, offset[, length]][, encoding])
buf.writeBigInt64BE(value[, offset])
buf.writeBigInt64LE(value[, offset])
buf.writeBigUInt64BE(value[, offset])
buf.writeBigUInt64LE(value[, offset])
buf.writeDoubleBE(value[, offset])
buf.writeDoubleLE(value[, offset])
buf.writeFloatBE(value[, offset])
buf.writeFloatLE(value[, offset])
buf.writeInt8(value[, offset])
buf.writeInt16BE(value[, offset])
buf.writeInt16LE(value[, offset])
buf.writeInt32BE(value[, offset])
buf.writeInt32LE(value[, offset])
buf.writeIntBE(value, offset, byteLength)
buf.writeIntLE(value, offset, byteLength)
buf.writeUInt8(value[, offset])
buf.writeUInt16BE(value[, offset])
buf.writeUInt16LE(value[, offset])
buf.writeUInt32BE(value[, offset])
buf.writeUInt32LE(value[, offset])
buf.writeUIntBE(value, offset, byteLength)
buf.writeUIntLE(value, offset, byteLength)
read
buf[index]
buf.buffer
buf.byteOffset
(buf 初始化时会先初始化 Buffer.poolSize 大小的 ArrayBuffer 用于存储 buf 数据,buf.byteOffset 用于标识 buf 在 ArrayBuffer 中的起始位置)buf.readBigInt64BE([offset])
buf.readBigInt64LE([offset])
buf.readBigUInt64BE([offset])
buf.readBigUInt64LE([offset])
buf.readDoubleBE([offset])
buf.readDoubleLE([offset])
buf.readFloatBE([offset])
buf.readFloatLE([offset])
buf.readInt8([offset])
buf.readInt16BE([offset])
buf.readInt16LE([offset])
buf.readInt32BE([offset])
buf.readInt32LE([offset])
buf.readIntBE(offset, byteLength)
buf.readIntLE(offset, byteLength
buf.readUInt8([offset])
buf.readUInt16BE([offset])
buf.readUInt16LE([offset])
buf.readUInt32BE([offset])
buf.readUInt32LE([offset])
buf.readUIntBE(offset, byteLength)
buf.readUIntLE(offset, byteLength)
运算
Buffer.byteLength(string[, encoding])
Buffer.compare(buf1, buf2)
buf.compare(target[, targetStart[, targetEnd[, sourceStart[, sourceEnd]]]])
Buffer.concat(list[, totalLength])
buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])
Buffer.isBuffer(obj)
Buffer.isEncoding(encoding)
buf.entries()
buf.keys()
buf.values()
buf.equals(otherBuffer)
buf.includes(value[, byteOffset][, encoding])
buf.indexOf(value[, byteOffset][, encoding])
buf.lastIndexOf(value[, byteOffset][, encoding])
buf.length
buf.subarray([start[, end]])
buf.slice([start[, end]])
buf.swap16()
buf.swap32()
buf.swap64()
buf.toJSON()
buf.toString([encoding[, start[, end]]])
buffer.transcode(source, fromEnc, toEnc)