将二进制数据在 Node.js 和浏览器中处理的几种方式

阅读时长 4 分钟读完

在前端开发中,我们经常需要对二进制数据进行操作,比如图片上传、文件下载、音视频播放等。Node.js和浏览器提供了多种操作二进制数据的方式,本文将介绍其中的几种常见方式。

1. Node.js 中的 Buffer

Buffer 是 Node.js 中的一个全局对象,用于表示二进制数据。可以通过字符串、数组、整数等多种方式创建一个 Buffer 对象。

创建 Buffer

-- -------------------- ---- -------
-- ------ ------ --
----- ---- - -----------------
------------------ -- ------- -- -- -- -- -- -- -- -- -- ---

-- -------
----- ---- - ------------------ --------
------------------ -- ------- -- -- -- -- -- -- -- -- -- -- ---

-- ------
----- ---- - ------------------ ----- ----- ----- ----- ----- ----- ----- ----- ----- -------
------------------ -- ------- -- -- -- -- -- -- -- -- -- -- ---

-- -- ----------- --
----- -- - --- ----------------
----- ---- - ----------------
------------------ -- ------- -- -- -- -- -- -- -- -- -- ---

操作 Buffer

Buffer 对象提供了多种操作二进制数据的方法,如下所示:

-- -------------------- ---- -------
----- --- - ------------------ --------

-- ----
------------------------ -- --

-- --------
-------------------- -- ---

-- --------
------ - ---
----------------- -- ------- -- -- -- -- -- -- -- -- -- -- ---

-- --- ------
----- ------ - ------------ ---
-------------------- -- ------- -- -- ---

-- ------
---------------------------- -- ----- -----

需要注意的是,Buffer 对象是类似数组的对象,它的元素为 0 到 255 之间的整数。

使用 Buffer 处理文件

在 Node.js 中,可以使用 fs 模块读写文件,并将文件内容转换成 Buffer 对象。下面是一个简单的读取文件的例子:

2. 浏览器中的 ArrayBuffer 和 TypedArray

在浏览器中,可以使用 ArrayBuffer 和 TypedArray 来处理二进制数据。ArrayBuffer 是表示通用的、固定长度的二进制数据缓冲区,而 TypedArray 是 ArrayBuffer 的一种视图,用于读写指定类型的二进制数据。

创建 ArrayBuffer 和 TypedArray

-- -------------------- ---- -------
-- ------- -- - ----------- --
----- -- - --- ----------------

-- ---- --------- ----
----- --------- - --- --------------
----------------------- -- ------------- --

-- ---- ---------- ----
----- ---------- - --- ---------------
------------------------ -- -------------- --

-- ---- ------------ ----
----- ------------ - --- -----------------
-------------------------- -- --------------- --

操作 TypedArray

TypedArray 对象提供了多种操作二进制数据的方法,如下所示:

-- -------------------- ---- -------
----- -- - --- ----------------
----- ---------- - --- ---------------

-- ----
------------------------------- -- --

-- ----

- ----------------------------------------------------------- --------
----------------------------------------------------------------------------------
纠错
反馈