nodejs buffer - yaokun123/php-wiki GitHub Wiki

Nodejs的Buffer

一、类型介绍

1、JavaScript语言没有读取或操作二进制数据流的机制。
2、Node.js中引入Buffer类型使我们可以操作TCP流 或 文件流
3、Buffer类型的对象类似于整数数组,但Buffer的大小是固定的、且在V8堆外分配物理内存。
Buffer的大小在被创建时确定,切无法调整(buf.length是固定的,不允许修改)。
4、Buffer是全局的。所以使用的时候无需require()的方式来加载。

二、如何创建一个Buffer对象

常见的API介绍

  • 1、创建一个Buffer对象
//1. 通过Buffer.from() 创建一个 Buffer 对象

//1.1 通过一个字节数组来创建一个Buffer对象
var arr = [0x68,0x65,0x6c,0x6f,0x20,0xe4,0xb8,0x96,0xe7,0x95,0x8c];
var buf = Buffer.from(arr);
console.log(buf.toString('utf-8'));

//1.2 通过字符串来创建一个Buffer对象
var buf = Buffer.from("你好世界!hello world!");
console.log(buf);
console.log(buf.toString);
  • 2、拼接多个Buffer对象为一个对象
var bufferList = [];
var buf = Buffer.concat(bufferList);
  • 3、获取字符串对应的字节个数
var len = Buffer.byteLength("你好世界!hello world!");
console.log(len);
  • 4、判断一个对象是否是Buffer类型对象
Buffer.isBUffer(obj);
  • 5、获取Buffer中的某个字节
bug[index]
  • 6、获取Buffer对象中的字节个数
buf.length

三、Buffer对象与编码

Node.js目前支持的编码如下:

1、ascii
2、utf8
3、utf16e
4、base64
5、latin1
6、hex