Node.js Buffer 缓冲模块

❮ 内置模块


实例

将字符串 "abc" 转换成二进制数据流:

var buf = Buffer.from('abc');
console.log(buf);
运行实例 »

定义和用法

buffers 模块提供了一种处理二进制数据流的方法。

Buffer 对象是 Node.js 中的全局对象,不需要使用require关键字导入。


语法

创建长度为15的空Buffer的语法:

var buf = Buffer.alloc(15);

缓冲区属性和方法

方法 描述
alloc() 创建一个指定长度的Buffer对象
allocUnsafe() 创建一个指定长度的非零填充缓冲区
allocUnsafeSlow 创建一个指定长度的非零填充且非池化的Buffer
byteLength() 返回指定对象的字节数
compare() 比较两个 Buffer 对象
concat() 将一组 Buffer 对象连接成一个 Buffer 对象
copy() 复制一个Buffer对象的指定字节数
entries() 返回 Buffer 对象的 "index" "byte" 对的迭代器
equals() 比较两个Buffer对象,如果匹配则返回true,否则返回false
fill() 用指定的值填充一个 Buffer 对象
from() 从一个对象(字符串/数组/缓冲区)创建一个 Buffer 对象
includes() 检查 Buffer 对象是否包含指定的值。如果有匹配则返回真,否则返回假
indexOf() 检查 Buffer 对象是否包含指定的值。返回第一次出现,否则返回 -1
isBuffer() 检查对象是否为 Buffer 对象
isEncoding() 检查 Buffer 对象是否支持指定的编码
keys() 返回 Buffer 对象中的键数组
lastIndexOf() 检查 Buffer 对象是否包含指定的值。返回第一次出现,从末尾开始,否则返回-1
length 返回 Buffer 对象的长度,以字节为单位
poolSize 设置或返回用于池化的字节数
readDoubleBE() 从 Buffer 对象中读取一个 64 位的 double,以大端序返回结果
readDoubleLE() 从 Buffer 对象中读取一个 64 位的 double,以 little endian 形式返回结果
readFloatBE() 从 Buffer 对象中读取一个 32 位浮点数,以大端返回结果
readFloatLE() 从 Buffer 对象中读取一个 32 位浮点数,以小端序返回结果
readInt8() 从 Buffer 对象中读取一个 8 位整数
readInt16BE() 从 Buffer 对象中读取一个 16 位整数,以大端返回结果
readInt16LE() 从 Buffer 对象中读取一个 16 位整数,以小端序返回结果
readInt32BE() 从 Buffer 对象中读取一个 32 位整数,以大端返回结果
readInt32LE() 从 Buffer 对象中读取一个 32 位整数,以 little endian 形式返回结果
readIntBE() 从一个Buffer对象中读取指定字节数,以大端返回结果
readIntLE() 从一个Buffer对象中读取指定字节数,以小端序返回结果
readUInt8() 从 Buffer 对象中读取一个无符号的 8 位整数
readUInt16BE() 从 Buffer 对象中读取一个无符号的 16 位整数,以大端序返回结果
readUInt16LE() 从 Buffer 对象中读取一个无符号的 16 位整数,以小端序返回结果
readUInt32BE() 从 Buffer 对象中读取一个无符号的 32 位整数,以大端序返回结果
readUInt32LE() 从 Buffer 对象中读取一个无符号的 32 位整数,以小端序返回结果
readUintBE() 从一个Buffer对象中读取指定字节数,返回结果为无符号整数
readUIntLE() 从一个Buffer对象中读取指定字节数,返回结果为无符号整数
slice() 将一个 Buffer 对象分割成一个新的 Buffer 对象,从指定位置开始和结束
swap16() 交换 16 位 Buffer 对象的字节顺序
swap32() 交换 32 位 Buffer 对象的字节顺序
swap64() 交换 64 位 Buffer 对象的字节顺序
toString() 返回 Buffer 对象的字符串版本
toJSON() 返回 Buffer 对象的 JSON 版本
values() 返回 Buffer 对象中的值数组
write() 将指定字符串写入 Buffer 对象
writeDoubleBE() 使用 big endian 将指定的字节写入 Buffer 对象。字节应该是 64 位双精度。
writeDoubleLE() 使用 little endian 将指定字节写入 Buffer 对象。字节应该是 64 位双精度。
writeFloatBE() 使用 big endian 将指定的字节写入 Buffer 对象。字节应该是 32 位浮点数。
writeFloatLE() 使用 little endian 将指定字节写入 Buffer 对象。字节应该是 32 位浮点数。
writeInt8() 将指定的字节写入 Buffer 对象。字节应为 8 位整数
writeInt16BE() 使用 big endian 将指定的字节写入 Buffer 对象。字节应该是 16 位整数。
writeInt16LE() 使用 little endian 将指定字节写入 Buffer 对象。字节应该是 16 位整数。
writeInt32BE() 使用 big endian 将指定的字节写入 Buffer 对象。字节应该是 32 位整数。
writeInt32LE() 使用 little endian 将指定字节写入 Buffer 对象。字节应该是 32 位整数。
writeIntBE() 使用 big endian 将指定字节写入 Buffer 对象。
writeIntLE() 使用 little endian 将指定字节写入 Buffer 对象。
writeUInt8() 将指定的字节写入 Buffer 对象。字节应该是 8 位无符号整数
writeUInt16BE() 使用 big endian 将指定的字节写入 Buffer 对象。字节应该是 16 位无符号整数。
writeUInt16LE() 使用 little endian 将指定字节写入 Buffer 对象。字节应该是 16 位无符号整数。
writeUInt32BE() 使用 big endian 将指定的字节写入 Buffer 对象。字节应该是 32 位无符号整数。
writeUInt32LE() 使用 little endian 将指定字节写入 Buffer 对象。字节应该是 32 位无符号整数。
writeUIntBE() 使用大端序将指定字节写入 Buffer 对象
writeUIntLE() 使用 little endian 将指定字节写入 Buffer 对象

❮ 内置模块