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.模块和文件一一对应. ...
随机推荐
- 总结几个关于 jQuery 用法
有关 jquery 用法 目录: $.trim() $.inArray() $.getJSON() 事件委托 on 遍历closest() ajaxSubmit() 拖拽排序 dragsort() 进 ...
- Uncaught TypeError: Cannot read property 'addEventListener'
标签元素还没有创建就调用引用标签的脚本就会出现此问题 将脚本放置在脚本标签的后面就可以了
- 第一百六十二节,jQuery入门介绍
jQuery入门 学习要点: 1.什么是 jQuery 2.学习 jQuery的条件 3.jQuery的版本 4.jQuery的功能和优势 5.其他 JavaScript库 6.是否兼容低版本 I ...
- 与时间有关的类Date,DateFormat,Calendar
Date类用于表示日期和时间.它没考虑国际化问题,所以又设计了另外两个类. Calendar类: 主要是进行日期字段之间的相互操作. 编程实例:计算出距当前日期时间315天后的日期时间,并使用”xxx ...
- 【BZOJ】2100: [Usaco2010 Dec]Apple Delivery(spfa+优化)
http://www.lydsy.com/JudgeOnline/problem.php?id=2100 这题我要吐血啊 我交了不下10次tle.. 噗 果然是写挫了. 一开始没加spfa优化果断t ...
- SurvivalShooter学习笔记(二.玩家移动旋转)
该案例中:(PC端操作) 1.玩家移动输入控制通过虚拟轴Axis,旋转输入控制通过鼠标位置: 2.玩家始终面朝鼠标停留点,鼠标停留点通过摄像机朝地面的射线获取: 3.玩家待机移动状态切换通过Anima ...
- 直接下载jdk压缩包方式安装
分为下面5个步骤 1.官网下载JDK 2.检查是否安装jdk,解压缩,放到指定目录 3.配置环境变量 4.设置系统默认JDK 5. 测试jdk 1.官网下载JDK 地址: http://ww ...
- 设计模式之简单工厂模式(Simply Factory)摘录
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫静态工厂方法(Static Factory Method)模式.但不属于23种GOF设计模式之中的一个.简单工厂模式是由一个工厂对象决定创建出 ...
- Android获取 应用程序大小,数据大小,缓存大小
在项目中创建,android.content.pm 包名.里面创建两个aidl文件.PackageStats.aidl 和 IPackageStatsObserver.aidl. PackageSt ...
- 【BZOJ3166】[Heoi2013]Alo 可持久化Trie树+set
[BZOJ3166][Heoi2013]Alo Description Welcome to ALO ( Arithmetic and Logistic Online).这是一个VR MMORPG , ...