Node.js Buffer模块功能及常用方法实例分析


Posted in Javascript onJanuary 05, 2019

本文实例讲述了Node.js Buffer模块功能及常用方法。分享给大家供大家参考,具体如下:

Buffer模块

alloc()方法

alloc(size,fill,encoding)可以分配一个大小为 size 字节的新建的 Buffer,size默认为0

var buf = Buffer.alloc(10);

参数fill为填充的数据,只要指定了fill就会调用Buffer.fill(fill) 初始化这个Buffer对象

var buf = Buffer.alloc(10,0xff);//可以为十六进制的数据

allocUnsafe()方法

Unsafe(size)顾名思义就是不安全的方法,因为以这种方式创建的 Buffer 实例的底层内存是未初始化的。甚至可能包含到敏感数据,所以通过fill()方法帮助初始化

buf = Buffer.allocUnsafe(10);
buf.fill(0);

allocUnsafeSlow()方法

allocUnsafeSlow()就是不从buffer缓冲区里分配,直接从操作系统分配,Slow指的是没有从缓冲池里高效分配

buf = Buffer.allocUnsafeSlow(10);

from()方法

from()方法可以分配一个buffer对象,用来存放这个字符串的二进制对象,因此Buffer的内容可以通过[]进行访问

buf = Buffer.from("HelloWorld!");//from(array)
console.log(buf);
buf = Buffer.from([123,22,24,36]);
console.log(buf);
//重建一个buffer,把原来Buffer的数据拷贝给新的buffer
buf2 = Buffer.from(buf);
console.log(buf2);
//buf[index] index取值范围[0,len-1]
console.log(buf[0],buf[1]);

大尾与小尾形式写入存储

writeInt32BE(value,offset)第一个参数为写入的数据,第二个参数从哪个位置开始写入 ,表示其以大尾(大端)形式写入
writeInt32LE(value,offset)以小尾(小端)的形式写入数据

//以大尾的形式存放,4个字节的整数
buf.writeInt32BE(65535,0);
console.log(buf);
//以小尾的方式写入
buf.writeInt32LE(65535,0);
console.log(buf);

大尾小尾形式读取数据

readInt32LE(offset)是指以小尾整型形式读取数据
readFloatLE(offset)是指以小尾浮点形式读取数据

var value = buf.readInt32LE(0);
console.log(value);
buf.writeFloatLE(3.16,0);
console.log(buf.readFloatLE(0));

读取数据的各种方式

//读取长度
var len = Buffer.byteLength("HelloWorld");
console.log(len);
buf = Buffer.alloc(4*4);
buf.writeInt32LE(65535,0);
buf.writeInt32LE(65535,4);
buf.writeInt32LE(65535,8);
buf.writeInt32LE(65535,12);
console.log(buf);
buf.swap32();
console.log(buf);
//用高位的方式读取
console.log(buf.readInt32BE(0));
console.log(buf.readInt32BE(4));
console.log(buf.readInt32BE(8));
console.log(buf.readInt32BE(12));
for (var i of buf.values()) {
  console.log(i);
}

转换

//以二进制方式转为字符串
console.log(buf.toString('hex'));
console.log(buf.toJSON());
buf.fill('A');
console.log(buf);
console.log(buf.toString('utf8'));

希望本文所述对大家nodejs程序设计有所帮助。

Javascript 相关文章推荐
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
Jun 26 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
Jul 20 Javascript
jQuery实现表头固定效果的实例代码
May 24 Javascript
JSON与XML优缺点对比分析
Jul 17 Javascript
JavaScript基础知识之方法汇总结
Jan 24 Javascript
HTML页面,测试JS对C函数的调用简单实例
Aug 09 Javascript
浅谈JavaScript中变量和函数声明的提升
Aug 09 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
Apr 10 Javascript
javascript回调函数的概念理解与用法分析
May 27 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
Jul 09 Javascript
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
使用vue-cli4.0快速搭建一个项目的方法步骤
Dec 04 Javascript
Node.js net模块功能及事件监听用法分析
Jan 05 #Javascript
JS无限级导航菜单实现方法
Jan 05 #Javascript
JSON字符串操作移除空串更改key/value的介绍
Jan 05 #Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 #Javascript
JavaScript常见事件处理程序实例总结
Jan 05 #Javascript
JavaScript代码调试方法实例小结
Jan 05 #Javascript
JavaScript实现连连看连线算法
Jan 05 #Javascript
You might like
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
python 正则表达式 概述及常用字符
2009/05/04 Python
详解python中init方法和随机数方法
2019/03/13 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
详解CSS3浏览器兼容
2016/12/14 HTML / CSS
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
中国跨境电商:Tomtop
2017/03/16 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
化工实习心得体会
2014/09/09 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
离婚律师函范本
2015/05/27 职场文书
师范生见习总结范文
2015/06/23 职场文书
Python入门之基础语法详解
2021/05/11 Python