在前端开发中,我们经常会用到对二进制数据类型的处理。比如,对一个音频文件进行解码、对图片进行编码、发送二进制数据包等操作。在这些操作中,我们需要使用到Buffer对象。
buffeream是一个npm包,它提供了对Buffer对象的封装,简化了工作流程,让处理二进制数据变得简单易懂。本文将介绍如何使用buffeream进行二进制数据处理。
安装
使用npm安装buffeream:
--- ------- ---------
引入
可以使用 CommonJS 或 ES6 模块引入buffeream:
CommonJS
--- --------- - ---------------------
ES6
------ --------- ---- ------------
使用
创建 Buffeream 对象
创建 Buffeream 对象有多种方式:
new Buffeream(buffer)
创建一个指向buffer的 Buffeream 对象。buffer 可以是以下任意一种类型:
- Buffer 对象;
- ArrayBuffer 对象;
- SharedArrayBuffer 对象。
----- ------ - ------------------ ------- -------- ----- --------- - --- ------------------
new Buffeream(size)
创建一个指定长度的空 Buffeream 对象。
----- --------- - --- -------------
new Buffeream(...buffers)
创建一个包含多个Buffer片段的 Buffeream 对象。buffers 是一个包含 Uint8Array 或 Buffer 对象的数组。
----- ------- - -------------------- -------- ----- ------- - -------------------- -------- ----- --------- - --- ------------------ ---------
对 Buffeream 对象进行操作
读取字节
readByte()方法返回 Buffeream 对象中的下一个字节。
----- --------- - --- ---------------------------- ----- ----- ----- -------- ---------------------------------- -- -- ---- ---------------------------------- -- -- ---- ---------------------------------- -- -- ---- ---------------------------------- -- -- ---- ---------------------------------- -- -- ----
写入字节
writeByte()方法向 Buffeream 对象写入一个字节。
----- --------- - --- ------------- -------------------------- -------------------------- -------------------------- -------------------------- -------------------------- ---------------------------------- -- -- ------- -- -- -- -- ---
读取数据
read()方法返回一个指定长度的新 Buffer。
----- --------- - --- ---------------------------- ----- ----- ----- -------- ------------------------------- -- -- ------- -- -- --- ------------------------------- -- -- ------- -- ---
写入数据
write()方法向 Buffeream 对象写入一个新 Buffer。
----- --------- - --- ------------- ---------------------------------- ----- -------- ---------------------------------- -------- ---------------------------------- -- -- ------- -- -- -- -- ---
读取整数
readInt*()方法读取指定类型的整数值。Buffeream 对象以 little-endian 顺序存储数据。
- readInt8():读取一个8位有符号整数;
- readUInt8():读取一个8位无符号整数;
- readInt16():读取一个16位有符号整数;
- readUInt16():读取一个16位无符号整数;
- readInt32():读取一个32位有符号整数;
- readUInt32():读取一个32位无符号整数;
- readBigInt64():读取一个64位带符号整数(ES2020);
- readBigUInt64():读取一个64位无符号整数(ES2020)。
----- --------- - --- ---------------------------- ----- ----- -------- ---------------------------------- -- -- -- ----------------------------------- -- -- --- ----------------------------------- -- -- ------ ------------------------------------ -- -- ----- ----------------------------------- -- -- ---------- ------------------------------------ -- -- ----------
写入整数
writeInt*()方法向 Buffeream 对象写入指定类型的整数值。Buffeream 对象以 little-endian 顺序存储数据。
- writeInt8():写入一个8位有符号整数;
- writeUInt8():写入一个8位无符号整数;
- writeInt16():写入一个16位有符号整数;
- writeUInt16():写入一个16位无符号整数;
- writeInt32():写入一个32位有符号整数;
- writeUInt32():写入一个32位无符号整数;
- writeBigInt64():写入一个64位带符号整数(ES2020);
- writeBigUInt64():写入一个64位无符号整数(ES2020)。
----- --------- - --- ------------- ------------------------ -------------------------- ----------------------------- ---------------------------------- -- -- ------- -- -- -- ---
转换为 Buffer
toBuffer()方法返回与 Buffeream 对象相同的 Buffer 对象。
----- --------- - --- ---------------------------- ----- ----- ----- -------- ---------------------------------- -- -- ------- -- -- -- -- ---
结论
Buffeream 简化了对二进制数据的处理,可以让代码更加简洁易读。这个npm包是专门为前端而设计的,如果你需要对二进制数据进行操作,就可以尝试使用 Buffeream 来让你的代码更加优雅。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60066c8eccdc64669dde56a9