Node.js API学习笔记(二)
本文发表于本人博客。
上一节笔记说到创建Buffer实例,这节继续讲Buffer。本节讲解下Buffer的一些静态方法、写入以及读取方法。
Buffer.isEncoding(编码)判断nodejs是否支持此编码
- console.log(Buffer.isEncoding("gb2312"));//不管过程怎么node都不支持这个编码,死记
- console.log(Buffer.isEncoding("utf8")); //true
- console.log(Buffer,isEncoding("ascii")); //true
Buffer.isBuffer(obj) 判断obj对象是否是Buffer类型对象
- var str = "";
- var obj = new Buffer(100);
- console.log(Buffer.isBuffer(str)); //false
- console.log(Buffer.isBuffer(obj)); //true
Buffer.byteLength(string,[encoding]) 获得指定编码(默认UTF8)下指定字符串所占的byte。注意utf8于ucs2不同
- var str = "独孤求败";
- var buf = new Buffer(str);
- console.log(Buffer.byteLength(str,"utf8")); //12
- console.log(Buffer.byteLength(str)); //12
- console.log(Buffer.byteLength("abc")); //3
- console.log(Buffer.byteLength(str,"ucs2")); //8
Buffer的写入方法:writeXXX(value,offset,[noAssert])
value:必须是整形或浮点;
offset:写入的开始位置;
noAssert:超出范围包异常,可省略;
有如下方法:writeInt8(),writeInt16BE(),writeIntLE(),writeInt32LE(),writeInt32BE().注意writeInt8()只有这个而且是从默认是LE模式
- var buf = new Buffer(4);
- var data = 0x0c;//十六进制=12
- buf.fill(); //使用fill方法填充,差不多就是全部清零状态
- buf.writeInt8(data,0);
- console.log(buf); //0c 00 00 00
- buf.fill();
- buf.writeInt16LE(data,0);//使用16位有符号 低到高存储
- console.log(buf); //0c 00 00 00
- buf.fill();
- buf.writeInt16BE(data,0);//使用16位有符号 高到低存储
- console.log(buf); //00 0c 00 00
Buffer的读取方法readUInt8(offset,[noAssert]) 这个跟write是一一对应的!
- var buf = new Buffer(4);
- var data = 0x0c;
- buf.fill();
- buf.writeInt8(data,0);
- console.log(buf.readInt8(0)); //12
- buf.fill();
- buf.writeInt16LE(data,0);
- console.log(buf.readInt16LE(0)); //12
copy(targetBuffer,[targetStart],[sourceStart],[sourceEnd]) 从一个Buffer对象拷贝指定的位置到目标Buffer
- var sBuffer = new Buffer("独孤求败");
- var tBuffer1 = new Buffer(6);
- var tBuffer2 = new Buffer(9);
- sBuffer.copy(tBuffer1);
- sBuffer.copy(tBuffer2);
- console.log(tBuffer1.toString()); //独孤
- console.log(tBuffer2.toString()); //独孤求
大家看到上面没,跟再上面的一段对比,就知道默认utf输出是3个字节一个中文哦!所以打印sBuffer的字节数是12.大家可以尝试下使用编码ascii输出是多少,什么条件下是不能输出的!
这节课先到这里,感觉最近又没时间了,慢慢,坚持下去。
Node.js API学习笔记(二)的更多相关文章
- Node.js API 学习笔记
常用 API 学习笔记 url 函数 url.parse: 解析 url 地址 url.resolve: 向 url 地址添加或替换字段 url.format: 生成 url 地址 querystri ...
- Node.js API学习笔记(一)
此文章已经发表于本人博客. Terminal(终端) 说起这个使用过linux系统的兄台一般都会知道的,本人理解:类似Putty这些ssh工具通过 软件来实现远程控制主机,对于我们使用者来说,它会显示 ...
- 《深入浅出Node.js》学习笔记(一)
看了朴灵前辈的node.js系列文章,很开阔视野,虽然能力有限还是有很多不懂,但是还是希望能写下笔记,初步对node.js有点了解. 一.概念 Node.js不是JS应用.而是JS运行平台 Node. ...
- node.js day01学习笔记:认识node.js
Node.js(JavaScript,everywhere) 1.Node.js 介绍 1.1. 为什么要学习Node.js 企业需求 + 具有服务端开发经验更好 + front-end + back ...
- Node.js入门学习笔记(一)
先来个最常见的"Hello World!". 打开你最喜欢的编辑器(我用的是Sublime Text),创建一个helloWorld.js的文件.我们要做的就是向stdout输出& ...
- node.js 基础学习笔记3 -http
http模块,其中封装了一个高效的HTTP服务器和一个建议的HTTP客户端 http.server是一个基于事件的HTTP服务器 http.request则是一个HTTP客户端工具,用户向服务器发送请 ...
- node.js入门学习笔记整理
(1)node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node与javaScript的区别在于,javaScript的顶层对象是window,而no ...
- Node.js入门学习笔记(三)
基于事件驱动的回调 这个问题不好回答,不过这是Node.js原生的工作方式.它是事件驱动的,这也是它为什么这么快的原因.你可以花一点时间阅读一下Felix Geisendörfer的大作 Unders ...
- node.js 基础学习笔记2
Module和Package是Node.js最重要的支柱. Node.j 提供require函数来调用其他模块,而且模块都是基于文件.模块和包区别是透明的,因此常常不作区分. 1.模块和文件一一对应. ...
随机推荐
- maven项目打ZIP包
1.Maven插件配置: <!-- ZIP打包 --> <plugin> <artifactId>maven-assembly-plugin</artifac ...
- sublime3 SublimeREPL python3
https://blog.csdn.net/lylfv/article/details/81453016
- easyui -grid每列绑定tooltip
/**用法:*/function doCellTip() { $('#dg').datagrid('doCellTip', { 'max-width': '100px' });} /** * 扩展两个 ...
- 请写出一段表单提交的HTML代码,表单名称为form1,提交方式为post,提交地址为submit.asp
请写出一段表单提交的HTML代码,表单名称为form1,提交方式为post,提交地址为submit.asp 解答: <form name=”form1” method=”post” action ...
- 关于JSON日期格式显示及My97日期控件
1.My97日期控件.显示不同的日期格式,可以调整"dateFmt“的参数来配置: 详细DEMO:http://www.my97.net/demo/index.htm <p>日期 ...
- Cross compile perl
Alex Suykov had do some work for this purpose, and my compile script is based on her patch. Steps St ...
- IOS . -转载-10行代码搞定九宫格
//每个Item宽高 CGFloat W = ; CGFloat H = ; //每行列数 NSInteger rank = ; //每列间距 CGFloat rankMargin = (self.v ...
- Ubuntu系统-网络配置
网络配置 静态IP root@ubuntu:~# cat /etc/network/interfaces # This file describes the network interfaces av ...
- 74、shape 画圆 加 边框
<?xml version="1.0" encoding="utf-8"?> <!--<shape xmlns:android=&quo ...
- python 之 多线程
一.多线程(具体可参照博文多进程---->http://www.cnblogs.com/work115/p/5621789.html) 1.函数式实现多线程 2.类实现多线程 3.多线程之线程锁 ...