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