nodejs buffer
2016-05-27 17:04
363 查看
1.事件模块 var events=require(‘events’);EventEmitter类来绑定监听事件
eventEmitter.on('eventname',eventHandler);//绑定事件及事件处理函数
触发事件
eventEmitter.emit("eventname")//触发事件
on(event,listener)//为指定事件注册一个监听器,
once(event,listener)//为制定事件注册一次监听器,监听器最多触发一次,触发后立刻解除该监听器
removeListener(event,listener);//移除指定事件的监听器
removeAllListeners([event])//移除所有事件的所有监听器
setMaxListeners(n)//默认情况下eventEmitters添加的监听器超过10个就回输出警告 setMaxListeners用于提高监听器的默认值的数量
listeners(event)//返回指定的事件的监听器数组
emit(event,[arg1],[arg2])//按照参数的顺序执行每个监听器
2. Buffer(缓冲区)
js语言自身只有字符串数据类型没有二进制数据类型
buffer用来创建一个专门存放二进制数据的缓存区
创建buffer类
var buf = new buffer(10);//创建长度为10字节的buffer实例
var but = new buffer([10,20,30,40,50]);//通过制定的数组创建buffer实例
var buf = new buffer("wwww.baidu.com","utf-8");//通过一个字符串创建buffer实例
!:utf-8默认的编码方式,此外还支持ascii utf8 utf16le ucs2 bass64 和 hex
写入缓冲区
buffer.write(string[,offset[,length]][,encoding])
string - 写入缓冲区的字符串
offset - 缓冲区开始写入的索引值,默认0
length - 写入的字节数,默认是buffer.length
encoding - 使用的编码 默认utf8
var buf = new buffer(200);
或buf = new buffer('abcedededededede',utf-8);
len = buf.write('de',8,3,utf-8);
console.log(len);
从缓冲区读取数据
语法 buffer.toString([encoding[,start[, end]]])
encoding - 编码
start - 开始读取的索引位置 默认值0
end 结束位置,默认为缓冲区结尾
将buffer 转换成json对象
buffer.toJSON();
var buf = new buffer('wwwhhhhh');
var json = buf.toJSON(buf);
console.log(json);
输出二进制 [119,119,119,......]
缓冲区合并
buffer.concat(list,totalLength);
list - 用于合并的buffer对象数组列表
totalLength - 指定合并后 buffer对象的总长度
返回一个多个成员合并的buffer对象的总长度
缓冲区比较
buf.compare(otherbuffer);
拷贝缓冲区
buffer.copy(targetBuffer,targetStart,sourceStart,sourceEnd);
targetBuffer - 要拷贝的buffer对象
targetStart - 数字
sourceStart -数字
sourceEnd -数字 默认 buffer.length
缓冲区裁剪
buffer.slice(start,end);
//返回一个新的缓冲区,它和旧缓冲区指向同一块内存
var buf1 = new buffer("123456");
var buf2 = buf1.slice(0,2);
conosle.log(buf2.toString());
//打印 12
缓冲区长度
buf.length //返回buffer对象占据内存的长度
buf[index]//获取或设置指定的字节
buffer.equals(otherbuffer)//比较两个区域是否相等
eventEmitter.on('eventname',eventHandler);//绑定事件及事件处理函数
触发事件
eventEmitter.emit("eventname")//触发事件
on(event,listener)//为指定事件注册一个监听器,
once(event,listener)//为制定事件注册一次监听器,监听器最多触发一次,触发后立刻解除该监听器
removeListener(event,listener);//移除指定事件的监听器
removeAllListeners([event])//移除所有事件的所有监听器
setMaxListeners(n)//默认情况下eventEmitters添加的监听器超过10个就回输出警告 setMaxListeners用于提高监听器的默认值的数量
listeners(event)//返回指定的事件的监听器数组
emit(event,[arg1],[arg2])//按照参数的顺序执行每个监听器
2. Buffer(缓冲区)
js语言自身只有字符串数据类型没有二进制数据类型
buffer用来创建一个专门存放二进制数据的缓存区
创建buffer类
var buf = new buffer(10);//创建长度为10字节的buffer实例
var but = new buffer([10,20,30,40,50]);//通过制定的数组创建buffer实例
var buf = new buffer("wwww.baidu.com","utf-8");//通过一个字符串创建buffer实例
!:utf-8默认的编码方式,此外还支持ascii utf8 utf16le ucs2 bass64 和 hex
写入缓冲区
buffer.write(string[,offset[,length]][,encoding])
string - 写入缓冲区的字符串
offset - 缓冲区开始写入的索引值,默认0
length - 写入的字节数,默认是buffer.length
encoding - 使用的编码 默认utf8
var buf = new buffer(200);
或buf = new buffer('abcedededededede',utf-8);
len = buf.write('de',8,3,utf-8);
console.log(len);
从缓冲区读取数据
语法 buffer.toString([encoding[,start[, end]]])
encoding - 编码
start - 开始读取的索引位置 默认值0
end 结束位置,默认为缓冲区结尾
buf = new buffer(26); for(var i=0;i<26;i++){ buf[i] = i +97; } console.log(buf.toString('ascii')); //输出:a-z26个字符 console.log(buf.tostring('ascii',0,5));//输出 abcde
将buffer 转换成json对象
buffer.toJSON();
var buf = new buffer('wwwhhhhh');
var json = buf.toJSON(buf);
console.log(json);
输出二进制 [119,119,119,......]
缓冲区合并
buffer.concat(list,totalLength);
list - 用于合并的buffer对象数组列表
totalLength - 指定合并后 buffer对象的总长度
返回一个多个成员合并的buffer对象的总长度
var buf1 = new buffer('dou'); var buf2 = new buffer(chuan); var buf3 = buffer.concat([buf1,buf2]); console.log('dayin'+buf3.toString(buf3,'utf-8')); //打印 dayin douchuan
缓冲区比较
buf.compare(otherbuffer);
var buf1 = new buffer('abc'); var buf2 = new buffer('abcde'); var result = buf1.compare(buf2); if(result<0){ console.log(buf1+在+buf2+之前); }else if(result ==0){ buf1+与+buf2+相同 }else{ console.log(buf1+在+buf2 +之后); }
拷贝缓冲区
buffer.copy(targetBuffer,targetStart,sourceStart,sourceEnd);
targetBuffer - 要拷贝的buffer对象
targetStart - 数字
sourceStart -数字
sourceEnd -数字 默认 buffer.length
var buf1 = new buffer('abc'); var buf2 = new buffer(3); buf1.copy(buf2); console.log(buf2.toString()); //输出abc
缓冲区裁剪
buffer.slice(start,end);
//返回一个新的缓冲区,它和旧缓冲区指向同一块内存
var buf1 = new buffer("123456");
var buf2 = buf1.slice(0,2);
conosle.log(buf2.toString());
//打印 12
缓冲区长度
buf.length //返回buffer对象占据内存的长度
buf[index]//获取或设置指定的字节
buffer.equals(otherbuffer)//比较两个区域是否相等
相关文章推荐
- NODE.JS querystring url
- 【深入浅出Node.js系列十六】grunt让Nodejs规范起来
- 【深入浅出Node.js系列十五】Nodejs实现websocket的4种方式
- 【深入浅出Node.js系列十四】Nodejs异步流程控制Async
- 【深入浅出Node.js系列十二】Nodejs日志管理log4js
- 【深入浅出Node.js系列十一】Node.js开发框架Express4.x
- 【深入浅出Node.js系列十】一个简单的静态文件合并服务器
- 【深入浅出Node.js系列九】一起撸Node.js
- nodeJS(express-session中间件使用)报错: Cannot set property ' ' of undefined
- 【NodeJS】log4js打印日志
- 【leetcode】24. Swap Nodes in Pairs
- node js fs模块
- NodeJs 搭建简单的聊天室
- Node入门_转
- 116. Populating Next Right Pointers in Each Node
- nodejs之初识模块化
- NodeJS、NPM安装配置步骤(windows版本)
- Windows node.js npm install express -g Cannot find module 'express'
- Swap Nodes in Pairs
- Nodejs pk Java 第1回合:初次交锋