06node_buffer类

数据的二进制

计算机中所有的内容:文字、数字、图片、音频、视频最终都会使用二进制来表示。

JavaScript可以直接去处理非常直观的数据:比如字符串,我们通常展示给用户的也是这些内容。

在网页端,图片我们一直是交给浏览器来处理的,JavaScript或者HTML,只是负责告诉浏览器一个图片的地址;

浏览器负责获取这个图片,并且最终讲这个图片渲染出来;

但是对于服务器来说是不一样的:

服务器要处理的本地文件类型相对较多;

比如某一个保存文本的文件并不是使用 utf-8进行编码的,而是用 GBK,那么我们必须读取到他们的二进制数据,再通过GKB转换成对应的文字;

比如我们需要读取的是一张图片数据(二进制),再通过某些手段对图片数据进行二次的处理(裁剪、格式转换、旋转、添加滤镜),Node中有一个Sharp的库,就是读取图片或者传入图片的Buffer对其再进行处理;)

Buffer和二进制

我们会发现,对于前端开发来说,通常很少会和二进制打交道,但是对于服务器端为了做很多的功能,我们必须直接去操作其二进制的数据;

所以Node为了可以方便开发者完成更多功能,提供给了我们一个类Buffer,并且它是全局的。

我们可以将Buffer看成是一个存储二进制的数组;这个数组中的每一项,可以保存8位二进制: 00000000

1byte = 8bit,1kb=1024byte,1M=1024kb;

Buffer和字符串

Buffer相当于是一个字节的数组,数组中的每一项对于一个字节的大小

中文


Buffer的创建过程

事实上我们创建Buffer时,并不会频繁的向操作系统申请内存,它会默认先申请一个8 * 1024个字节大小的内存,也就是8kb

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容