介绍
- JavaScript没有读取和操作二进制数据流的机制,但是 node.js 引入了Buffer 类型,可以操作TCP流或者文件流
- 使用Buffer可以用来对临时数据(二进制数据)进行存储,当我们将一大块数据从一个地方传输到另一个地方的时候就可以通过Buffer对象进行传输,每次只传输一小块,直到数据传输完毕
- Buffer对象类似于整形数组,但是大小是固定的,在被创建的时候就已经确定了大小,此后无法再改变,且在v8堆外分配物理内存
- Buffer对象是全局,所以不需要require引用
常见API
- Buffer.from() 创建实例对象
- Buffer.concat(list[,totalLength]) 拼接多个Buffer对象为一个对象
- Buffer.byteLength(string[,encoding]) 获取字符对于字节长度
- Buffer.isBuffer(obj) 判断是否是Buffer对象
- buf[index] 获取Buffer对象中对应索引的值
- buf.length 获取Buffer对象长度
过时API
- new Buffer(array)
- new Buffer(buffer)
- new Buffer(arrayBuffer[,byteoffset[,length]])
- new Buffer(string[,encoding])
编码
- ascii
- utf8
- utf16le(ucs2是utf16别名)
- base64
- latin1(binary是latin1别名)
- hex(用两位16进制来表示每个字节)