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.模块和文件一一对应. ...
随机推荐
- 【Android Studio】之构建项目报错
问题1: 报错: Could not download fastutil.jar (it.unimi.dsi:fastutil:7.2.0): No cached version available ...
- zend studio 10.6.2 设置默认编码为UTF-8
如果汉化的:窗体-->常规-->工作空间 然后再选择编码格式 如果未汉化:Window->Preferences->General->wookspace 然后再选 ...
- C#连接各种数据库的方法(文档)
1.C#连接连接Access程序代码: ------------------------------------------------------------------------------- ...
- number(4,2)
number(4,2) ##.## 例如:45.23 number(6,2)就是####.## 例如:9994.11 4代表总共有效位数为4位2代表小数位为2位
- NPOI 1.2教程(目录)操作Excel
原文地址:http://www.cnblogs.com/atao/archive/2009/11/15/1603528.html
- Axure9 v9.0.0.3629 ~ v9.0.0.3633 授权密钥 【2019.02.05】
现在提供一个支持v9.0.0.3629.v9.0.0.3630.v9.0.0.3631.v9.0.0.3632.v9.0.0.3633的授权码(后续的Beta更新版本应该能继续使用) 被授权人:zd4 ...
- vim 命令大全(写的非常全和好)http://blog.csdn.net/woshixiaosimao/article/details/54312738
下文转自链接.由原作者陈皓译自<Learn ViM Progressively>,非常不错. ——————————正文开始—————————— 你想以最快的速度学习人类史上最好的文本编辑器 ...
- 在ChemDraw中输入千分号的方法
很多的用户都会使用ChemDraw化学绘图工具来绘制一些化学反应的过程,但是一些化合物中有些元素所占的比例是非常小的,这个时候往往就需要千分号来显示比例.但是在ChemDraw的工具栏上只有百分号没有 ...
- STL中的排序算法
本文转自:STL中的排序算法 1. 所有STL sort算法函数的名字列表: 函数名 功能描述 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 ...
- 在java中public void与public static void有什么区别 ?
public void 修饰是非静态方法,该类方法属于对象,在对象初始化(new Object())后才能被调用:public static void 修饰是静态方法,属于类,使用类名.方法名直接调用 ...