node.js—Buffer类(二进制数据处理模块)
Buffer类概述
一个用于更好的操作二进制数据的类 我们在操作文件或者网络数据的时候,其实操作的就是二进制数据流
Node为我们提供了一个更加方便的去操作这种数据流的类 Buffer,他是一个全局的类,不需要引入后才能使用,可以直接使用
Buffer类的构造方法
new Buffer(size)
分配一个新的buffer大小是size的8位字节,参数size是一个Number类型的(类似数组的长度),一个长度表示1个字节
创建一个Buffer对象,并为这个对象分配一个大小,当我们为一个Buffer对象分配了大小之后,其长度是固定不变的,不能更改


打印出来的结果是以16进制的方式打印的

new Buffer(array)
分配一个新的Buffer使用一个8位字节Array数组


给某角标赋值


new Buffer(string, [encoding])
存储一个字符串的时候,需要告诉Buffer一个编码,不同编码结果是不一样的,默认编码是utf-8
Node里面并不是支持所有编码,支持的编码有:ascll/utf16le/ucs2/base64/binary/hex


这里直接打印出来的是十六进制的表示
Buffer的属性
Buffer的length属性和buf[index]
buf.length : buffer的bytes大小
buf[index] : 获取或者设置在指定index索引位置的8位字节内容


Buffer的length属性需要注意的地方
这个length的属性指的不是字符的长度,而是字节的长度(buffer的bytes大小).一个中文是3个字节


node.js—Buffer类(二进制数据处理模块)的更多相关文章
- 23. Node.Js Buffer类(缓冲区)-(三)文件读取实例
转自:https://blog.csdn.net/u011127019/article/details/52513109
- 22. Node.Js Buffer类(缓冲区)-(二)
转自:https://blog.csdn.net/u011127019/article/details/52512242
- 21. Node.Js Buffer类(缓冲区)-(一)
转自:https://blog.csdn.net/u011127019/article/details/52512242
- Node.js Buffer(缓冲区)
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门 ...
- node.js(二)各种模块
我们知道Node.js适合于IO密集型应用,不适合于CPU密集型应用. JS和Node.js区别: JS运行于客户端浏览器中,存在兼容性问题:数据类型:值类型+引用类型(ES+D ...
- [Node.js与数据库]node-mysql 模块介绍
[Node.js与数据库]node-mysql 模块介绍 转载至:https://itbilu.com/nodejs/npm/NyPG8LhlW.html#multiple-statement-q ...
- Node.js进程管理之Process模块
在前面Node.js事件运行机制也有提到,Node.js应用在单个线程运行,但是现在大部分服务器都是多处理器,为了方便使用多个进程,Node.js提供了3个模块.Process模块提供了访问正在运行的 ...
- 《深入浅出Node.js》第2章 模块机制
@by Ruth92(转载请注明出处) 第2章 模块机制 JavaScript 先天缺乏的功能:模块. 一.CommonJS 规范: JavaScript 规范的缺陷:1)没有模块系统:2)标准库较少 ...
- node.js中通过dgram数据报模块创建UDP服务器和客户端
node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端. 一.创建UDP服务器和客户端 服务端: const dgram = require('dg ...
随机推荐
- 一个smtp发送错误
错误返回: Error: need EHLO and AUTH first ! 原因:服务器是smtp.exmail.qq.com,邮箱账号是企业新申请的邮箱账号,邮箱密码需要重新修改. 解决办法:修 ...
- 【转】消除代码中的 if-else/switch-case
在很多时候,我们代码中会有很多分支,而且分支下面的代码又有一些复杂的逻辑,相信很多人都喜欢用 if-else/switch-case 去实现.做的不好的会直接把实现的代码放在 if-else/swit ...
- ES6之Object.assign()详解
译者按: 这篇博客将介绍ES6新增的Object.assign()方法. 原文: ECMAScript 6: merging objects via Object.assign() 译者: Funde ...
- 计算机1&操作系统硬件
1.什么是编程语言? 语言是一种事物与另外一种事物沟通的表达方式 而编程则是人与计算机沟通的表达方式 2:什么是编程? 编程就是程序员用计算机能理解的的表达方式,把程序员想要表达的内容写到文件里, ...
- H5+混合移动app应用开发——app升级
当我们的app开发完成之后,无可避免的以后会进行产品升级,那么我们希望在客户的手机上让app进行自动升级,可以分为自动升级和手动升级. 自动升级:一般在客户app第一次打开首页的时候. 手动升级:在a ...
- LVS + HAProxy实现跨网负载均衡
- Android ScrollView内部组件设置android:layout_height="fill_parent"无效的解决办法
问题:scrollview内部组件都设置了android:layout_height="fill_parent"却没有效果. 解决办法:设置scrollview的fillViewp ...
- 5步告诉你QQ音乐的完美音质是怎么来的,播放器的秘密都在这里
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由QQ音乐技术团队发表于云+社区专栏 一.问题背景与分析 不久前,团队发现其Android平台App在播放MV视频<凤凰花开的路口 ...
- hdu-2018题(母牛问题)
HDU-2018题/*有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛?Input输入数据由多个测试实例组成,每个测试实 ...
- Nginx与Nginx-rtmp-module搭建RTMP视频直播和点播服务器
一.开发环境 Nginx地址: http://nginx.org/download/nginx-1.14.2.tar.gz Nginx-rtmp-module地址: https://github.c ...