Node.js - Buffer 模块
Buffer 是计算机内存中的一块空间,用于临时存储二进制数据。Node.js Buffer 模块负责处理二进制数据流。二进制数据是计算机能够理解的数据,按照二进制数字系统用 0 和 1 的组合表示。例如:110011、001110 等。
在 Node.js 中,buffer 模块是全局可用的。不需要使用 require 来导入它。
类属性
以下是属性列表:
| 序号 | 模块 & 描述 |
|---|---|
| 1 | buf.buffer 它将返回一个 array buffer 对象,从中创建的 buffer 与该 array buffer 相同。 |
| 2 | buf.byteOffset 它将返回给定 buffer 的 byteOffset 值。 |
| 3 | buf.length 它将返回 buffer 中的字节数。 |
| 4 | Buffer.poolSize 它为 Buffer 实例分配字节大小,这些实例随后由 Node.js 用于池化。 |
| 5 | buf[index] 它用于设置或返回 buffer 中索引位置的八位字节值。 |
静态方法
以下是方法列表:
| 序号 | 模块 & 描述 |
|---|---|
| 1 | alloc() 用于创建指定大小的新 buffer。 |
| 2 | allocUnsafe() 用于分配指定大小的新 buffer。如果大小大于 buffer.constants.MAX_LENGTH 或小于 0,将抛出 ERR_INVALID_ARG_VALUE。 |
| 3 | allocUnsafeSlow() 它将分配指定大小的新 buffer。如果大小大于 buffer.constants.MAX_LENGTH 或小于 0,将抛出 ERR_INVALID_ARG_VALUE。 |
| 4 | byteLength() 用于返回 buffer 对象的字节长度。 |
| 5 | compare() 用于比较两个给定的 buffer 对象,并返回表示比较差异的值。 |
| 6 | concat() 用于通过连接所有给定的 buffer 对象返回单个 buffer 对象。 |
| 7 | from() 用于使用传入的数组作为字节创建新 buffer。 |
| 8 | isBuffer() 如果给定的对象是 buffer,则返回 true。 |
| 9 | isEncoding() 如果给定的编码值是支持的字符编码,则返回 true;否则返回 false。 |
Buffer 类方法
以下是方法列表 −
| 序号 | 模块 & 描述 |
|---|---|
| 1 | readBigInt64LE() 用于从 buffer 的指定偏移量处以 little endian 形式读取一个有符号 64 位整数。 |
| 2 | compare() 用于处理两个 buffer 对象的比较,并返回表示比较差异的值。 |
| 3 | readBigInt64BE() 用于从 buffer 对象的指定偏移量处读取一个有符号 big endian 64 位整数。 |
| 4 | lastIndexOf() 负责在 buffer 内搜索值。它返回值所在的位置,如果值不存在则返回 -1。 |
| 5 | readBigUInt64LE() 用于从当前 buffer 对象的指定偏移量处读取一个无符号 little-endian 64 位整数。 |
| 6 | readDoubleBE() 用于从当前 buffer 对象的指定偏移量处读取一个 big-endian double 64 位数字。 |
| 7 | readDoubleLE() 用于从当前 buffer 对象的指定偏移量处读取一个 little-endian double 64 位数字。 |
| 8 | readFloatBE() 用于从当前 buffer 对象的指定偏移量处读取一个 big-endian float 32 位数字。 |
| 9 | readFloatLE() 用于从当前 buffer 对象的指定偏移量处读取一个 little-endian float 32 位数字。 |
| 10 | readInt8() 用于从当前 buffer 对象的指定偏移量处读取一个 8 位有符号数字。 |
| 11 | writeDoubleBE() 用于将一个 big-endian double 数字写入到创建的 buffer 的指定偏移量处。 |
| 12 | writeDoubleLE() 用于将一个 little-endian double 数字写入到创建的 buffer 的指定偏移量处。 |
| 13 | writeFloatBE() 用于将一个 big-endian float 32 位数字写入到当前 buffer 对象的指定偏移量处。 |
| 14 | writeFloatLE() 用于将一个 little-endian float 32 位数字写入到当前 buffer 对象的指定偏移量处。 |
| 15 | copy() 用于将源 buffer 对象的内容复制到目标 buffer 中。 |
| 16 | entries() 用于从给定的 buffer 创建一个迭代器对象,并返回 buffer 内容中的 [index, byte] 对。 |
| 17 | equals() 用于比较两个 buffer,如果相等则返回 true,否则返回 false。 |
| 18 | fill() 用于用给定的值填充 buffer。如果未指定 buffer 内的范围,则会填充整个 buffer。 |
| 19 | includes() 用于检查给定的值是否在 buffer 中存在或包含在内。如果存在则返回 true,否则返回 false。 |
| 20 | indexOf() 负责在 buffer 内搜索值。它返回值起始的位置,如果值不存在则返回 -1。 |
| 21 | keys() 用于返回一个迭代器对象。遍历该对象时,会给出 buffer 对象中每个 byte 的键。 |
| 22 | readBigUInt64BE() 用于从当前 buffer 对象的指定偏移量处读取一个无符号 big-endian 64 位整数。 |
| 23 | readInt16BE() 用于从 buffer 的指定偏移量处以 big endian 形式读取一个有符号 16 位整数。 |
| 24 | readInt16LE() 用于从 buffer 的指定偏移量处以 little endian 形式读取一个有符号 16 位整数。 |
| 25 | readInt32BE() 用于从 buffer 的指定偏移量处以 big endian 形式读取一个有符号 32 位整数。 |
| 26 | readInt32LE() 用于从 buffer 的指定偏移量处以 little endian 形式读取一个有符号 32 位整数。 |
| 27 | readIntBE() 用于从 buffer 的指定偏移量处以 big endian 格式读取指定字节数。 |
| 28 | readIntLE() 用于从 buffer 的指定偏移量处以 little endian 格式读取指定字节数。 |
| 29 | readUInt8() 用于从当前 buffer 对象的指定偏移量处读取一个 8 位无符号数字。 |
| 30 | readUInt16BE() 用于从 buffer 的指定偏移量处以 big endian 形式读取一个无符号 16 位整数。 |
| 31 | readUInt16LE() 用于从 buffer 的指定偏移量处以 little endian 形式读取一个无符号 16 位整数。 |
| 32 | readUInt32BE() 用于从 buffer 的指定偏移量处以 big endian 形式读取一个无符号 32 位整数。 |
| 33 | readUInt32LE() 用于从 buffer 的指定偏移量处以 little endian 形式读取一个无符号 32 位整数。 |
| 34 | readUIntBE() 用于根据字节长度和偏移量读取指定字节数,并从使用的 buffer 返回 big endian 格式的无符号整数。 |
| 35 | readUIntLE() 用于根据字节长度和偏移量读取指定字节数,并从使用的 buffer 返回 little endian 格式的无符号整数。 |
| 36 | subarray() 用于基于原始 buffer 的给定起始和结束偏移量值返回一个新的 buffer。 |
| 37 | swap16(), swap32(), swap64() 这些方法将 buffer 视为无符号 16 或 32 或 64 位整数数组,就地交换字节顺序,并返回 buffer 的引用。 |
| 38 | toJSON() 用于为给定的 buffer 返回一个 JSON 对象。 |
| 39 | toString() 用于根据给定的编码解码字符串。 |
| 40 | values() 用于返回一个迭代器对象,其中包含 buffer 中所有 byte 的详细信息。 |
| 41 | write() 用于将给定的字符串值从偏移量指定的位置写入到 buffer 中。 |
| 42 | writeBigInt64BE() 用于将一个有符号 64 位整数以 big endian 形式写入到 buffer 的指定偏移量处。 |
| 43 | writeBigInt64LE() 用于将一个有符号 64 位整数以 little endian 形式写入到 buffer 的指定偏移量处。 |
| 44 | writeBigUInt64LE() 用于将一个无符号 64 位整数以 little endian 形式写入到 buffer 的指定偏移量处。 |
| 45 | writeInt8() 用于将一个有符号 8 位整数的值写入到 buffer 的指定偏移量处。 |
| 46 | writeInt16BE() 用于将一个有符号 16 位整数以 big endian 形式写入到 buffer 的指定偏移量处。 |
| 47 | writeInt16LE() 用于将一个有符号 16 位整数以 little endian 形式写入到 buffer 的指定偏移量处。 |
| 48 | writeInt32BE() 用于将一个有符号 32 位整数以 big endian 形式写入到 buffer 的指定偏移量处。 |
| 49 | writeInt32LE() 用于将一个有符号 32 位整数以 little endian 形式写入到 buffer 的指定偏移量处。 |
| 50 | writeIntBE() 用于将指定字节长度的值以 big endian 形式写入到 buffer 的指定偏移量处。 |
| 51 | writeIntLE() 用于将指定字节长度的值以 little endian 形式写入到 buffer 的指定偏移量处。 |
| 52 | writeUInt8() 用于将一个无符号 8 位整数的值写入到 buffer 的指定偏移量处。 |
| 53 | writeUInt16BE() 用于将一个无符号 16 位整数的值以 big endian 形式写入到 buffer 的指定偏移量处。 |
| 54 | writeUInt16LE() 用于将一个无符号 16 位整数的值以 little endian 形式写入到 buffer 的指定偏移量处。 |
| 55 | writeUInt32BE() 用于将一个无符号 32 位整数的值以 big endian 形式写入到 buffer 的指定偏移量处。 |
| 56 | writeUInt32LE() 用于将一个无符号 32 位整数的值以 little endian 形式写入到 buffer 的指定偏移量处。 |
| 57 | writeUIntBE() 用于将指定字节长度的无符号字节值以 big endian 形式写入到 buffer 的指定偏移量处。 |
| 58 | writeUIntLE() 用于将指定字节长度的无符号字节值以 little endian 形式写入到 buffer 的指定偏移量处。 |