Buffer的构造函数
缓冲区是在内容中操作数据的容器,Node.js 中的Buffer缓冲区模块,支持开发者在缓冲区结构中创建、读取、 写入和操作二进制数据,该模块是全局性的,所以在使用时不需要使用require()函数来加载。
在Node.js手册中查找到Buffer的创建方式,具体如下:
new Buffer(array)、new Buffer(buffer)、new Buffer( arrayBuffer[, byteOffset [, length])、new Buffer(size)、new Buffer(str[, encoding])。
从上述方式中可以看出,Buffer() 构造函数用于创建Buffer对象,其中的参数可以是字节(size)、 数组(array)、 buffer 对象、字符串(str) 等。
- 传入字节:
使用Buffer自己创建一一个内存空间,单位为字节,语法如下:
var buf = new Buffer (size) ;
在上述语法中,size 代表字节大小,例如创建了5个字节的内存空间,就向Bufer()构造函数中传递参数5。
- 传入数组:
通过传入数组方式创建Buffer实例,语法如下:
var buf = new Buffer([10, 20,30,40, 50]) ;
在上述语法中参数为自定义数组。
- 传入字符串和编码:
var buf = new Buffer("hello", "utf-8") ;
在上述方法中,“hello” 为JavaScript字符串,Buffer 和JavaScript字符串对象之间的转换需要显式地调用编码方法来完成,"utf-8"为Buffer默认支持的编码方式,可以省略。
除utf-8编码外,Buffer 同样支持以下编码:
- ascii:仅用于7位ASCII字符。这种编码方法非常快,并且会丢弃高位数据。
- utf16le:两个字节,UTF-16LE代表Unicode转换格式——16 位小端字节序。
- ucs2: 两个字节,以小尾字节序(Little-Endian) 编码的Unicode字符。它只能对BMP (基本多文种平面,U+0000 ~ U+FFFF)范围内的字符编码。
- base64: Base64 字符串编码,Base64 是网络上最常见的用于传输8字节代码的编码方式之一。
- hex: Hex 字符串编码,Hex全称是Intel HEX。Hex文件是由一行行符合 Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码或常量数据的十六进制编码数字组成。