nodeJS
来源:互联网 发布:前端防止重复提交知乎 编辑:程序博客网 时间:2024/06/13 10:35
Buffer 处理二进制数据
说明
Buffer
是 nodeJS 处理二进制数据的一个接口,是 Node 提供的原生全局对象,不需要require
,他是一个构造函数,生成的实例代表V8
引擎分配的一块内存,是一个类似数组的对象,成员都为0 到 255 的对象
参考
- Node.js 文档
- JavaScript 标准参考教程 Node.js
类方法
最新版本(v6.0.0废弃),已经不建议使用
new Buffer()
创建实例
1. Buffer.alloc()
创建一个大小指定字节的 buffer
- 1)size: 指定大小(字节)
- 2)fill:可选,填充内容,默认填充 0
- 3)encoding: 可选,编码
const buf = Buffer.alloc(6, 'test', 'utf-8');console.log(buf); // <Buffer 74 65 73 74 74 65>
2. Buffer.allocUnsafe()
以这种方式创建的 Buffer 实例,但是底层内存未初始化,新建的Buffer 内容是未知的
const buf = Buffer.allocUnsafe(10); buf.fill(0); console.log(buf);
3. Buffer.compare(buf1, buf2)
比较两个 buffer
const buf1 = Buffer.alloc(6, 'test', 'utf-8'); const buf2 = Buffer.alloc(6, 'fff', 'utf-8'); console.log(Buffer.compare(buf1, buf2)); // 1|-1
4. Buffer.from()
同样是创建 buffer
const buf = Buffer.from('this is buffer'); console.log(buf.toString()); // this is buffer console.log(buf.toString('base64')); //dGhpcyBpcyBidWZmZXI=
5. Buffer.isBuffer
判断一个值是不是 buffer
const buf = Buffer.from('this is buffer'); console.log(Buffer.isBuffer(buf)); // true console.log(Buffer.isBuffer(['00', '00'])); //false
6. Buffer.isEncoding()
表示 buffer 是否是支持某个字符编码
Buffer.isEncoding('utf-8'); // true
7. Buffer.byteLength()
返回字符串实际占用的字节长度
Buffer.byteLength('this is test', 'utf-8'); // 12
8. Buffer.concat()
buffer 合并
var i1 = new Buffer('Hello'); var i2 = new Buffer(' '); var i3 = new Buffer('World'); Buffer.concat([i1, i2, i3]).toString() // 'Hello World'
实例方法
1. write()
向指定 buffer 写入数据
- 1)string: 要写入的内容
- 2)offset: 可选,起始位置
- 3)length: 可选,要写入的字节数
- 4)encoding: 编码
const buf = Buffer.alloc(20); buf.write('this is test'); console.log(buf.toString()); // 'this is test'
2. slice()
返回从原对象上切割下的 buffer 实例
- 1)start 起始位置
- 2)end 结束位置
const buf = new Buffer('just some data'); const chunk = buf.slice(5, 9); chunk.toString(); // "some"
3. toString()
将Buffer实例,按照指定编码(默认为utf8)转为字符串
- 1)encoding: 编码
- 2)start:起始位置
- 3)end : 结束位置
const buf = Buffer.alloc(20); buf.write('this is test'); console.log(buf.toString('utf-8', 1, 6)); // his i
4. toJSON()
返回 buf 的 JSON 格式
const buf = Buffer.from('test'); console.log(buf.toJSON()); // { type: 'Buffer', data: [ 116, 101, 115, 116 ] }
5. buf.compare()
实例方法,比较 buffer
const buf1 = Buffer.from('ABC'); const buf2 = Buffer.from('BCD'); console.log(buf1.compare(buf1)); // 输出: 0 console.log(buf1.compare(buf2)); // 输出: -1
阅读全文
0 0
- nodejs
- NodeJs
- nodejs
- nodejs
- nodejs
- nodejs
- nodejs
- nodejs
- nodejs
- nodejs
- NodeJs
- nodejs
- NodeJS
- nodejs
- nodejs
- nodejs
- NodeJS
- nodejs
- java基础复习六:三大特性之一继承
- 1.0使用递归操作遍历文件夹下的所有文件
- STM32--GPIO结构,推挽、复用输出
- vs2010 操作ini文档,写入和读出内容
- Android webView.loadData乱码问题
- nodeJS
- Gitlab 自定义修改
- Ubuntu16.04 + GTX1080 解决桌面重复登录问题
- Kotlin版本的MD5加密算法
- AsyncRestTemplate 异步服务访问
- scikit-learn 中文文档-多类和多标签算法-监督学习|ApacheCN
- 设计模式(七)——模板方法模式
- 我究竟应该学什么?
- mysql之间的时间之间的转化