在fs模块的文档1中,我们可以阅读(对于
writeFile
方法):
const data = new Uint8Array(Buffer.from('Hello Node.js'));
在同一文档2中说:
随着 TypedArray 的推出,Buffer 类实现了 Uint8Array API 以更优化且适合的方式 Node.js。
那么,如果
Buffer
类实现了 Unint8Array
,您能告诉我为什么我们需要从 Unint8Array
转换为 Buffer
吗?
Uint8Array
是一个通用的字节数组,在nodejs和浏览器中都可用。 Buffer 是 Uint8Array
的子类,仅在 Node.js 中可用(由于历史原因)。两者主要用于操作二进制(字节)数据。
从历史上看,当 Node.js 第一次出现时,通用的 Uint8Arrays 还不存在,因此它必须发明自己的“Buffer”类型来处理二进制数据。在 ES6 引入通用
Uint8Array
后,Node.js(4.0 版之后)决定将 Buffer 从单独的数据类型 -> Uint8Array
的子类迁移过来(以尝试使其与浏览器更加兼容) Uint8Array
)。
https://www.quora.com/What-is-the-relationship- Between-a-Buffer-and-an-Uint8Array-in-Node-js