【Node.JS】buffer类缓冲区

简介: 【Node.JS】buffer类缓冲区

 简介

node.js的开发语言就是js,

javascript语言自身只有字符串数据类型,没有二进制数据类型。

node.js有时会操作一些文件,或是tcp流之类的东西。

那么就必须要操作二进制数据,

因此,在node.js中,有一个buffer类,

他用来创建一个专门存放二进制数据的缓存区。

buffer类是随node.js安装的,直接引入就可以使用。

这些原始数据是存储在buffer类的实例中,一个buffer类就相当于是一个整数数组,他相当于是划出了一块自己的内存空间。

buffer类的实例,用于表示编码字符的序列,支持utf-8,ascii等

创建Buffer类

Buffer.alloc,返回一个指定大小的Buffer实例,如果没有设置 fill,则默认填满 0。

const buf1 = Buffer.alloc(100);
//指定大小

image.gif

使用Buffer类

buf.write(string[, offset[, length]][, encoding])

image.gif

string - 写入缓冲区的字符串。

offset - 缓冲区开始写入的索引值,默认为 0 。

length - 写入的字节数,默认为 buffer.length

encoding - 使用的编码。默认为 'utf8' 。

const buf1 = Buffer.alloc(100);
var xx = buf1.write('坚毅的小解同志'); //返回的是字节数
console.log(buf1);  //显示二进制字节占用情况
console.log('字节数' + xx);
console.log(buf1.toString());

image.gif

image.gif编辑

七个汉字,一共占有了21个字节,一个汉字占三个自己,在unicode编码格式中一个汉字占两个字节,在默认的utf-8中一个汉字占三个字节。我们可以通过toString这个方法来将二进制转化为字符串。

buffer类在实际应用中不多,当所修改的内容较为庞大的时候,我们可以采取这种二进制数组来修改内容,不会像replace产生新的数组。

const buf1 = Buffer.alloc(100);
var xx = buf1.write('aello,World'); //返回的是字节数
buf1[0] = 72;
console.log(buf1);  //显示二进制字节占用情况
console.log('字节数' + xx);

image.gif

通过二进制ASCII码来替换首字母。

image.gif编辑

中间的逗号是中文的逗号 所以一共13个字节。

直接使用buffer类

var xx = Buffer.from('aellow,World'); 
xx[0] = 72;
console.log(xx);  //显示二进制字节占用情况
console.log(xx.toString());

image.gif

image.gif编辑

image.gif编辑


目录
相关文章
|
3月前
|
设计模式 JavaScript 前端开发
在JavaScript中,继承是一个重要的概念,它允许我们基于现有的类(或构造函数)创建新的类
【6月更文挑战第15天】JavaScript继承促进代码复用与扩展,创建类层次结构,但过深的继承链导致复杂性增加,紧密耦合增加维护成本,单继承限制灵活性,方法覆盖可能隐藏父类功能,且可能影响性能。设计时需谨慎权衡并考虑使用组合等替代方案。
41 7
|
9天前
|
JavaScript 前端开发
JavaScript基础知识-构造函数(也称为"类")定义
本文介绍了JavaScript中构造函数(也称为“类”)的定义和使用方法。
18 1
JavaScript基础知识-构造函数(也称为"类")定义
|
23小时前
|
JavaScript 前端开发
JS中Promise的类式实现写法
JS中Promise的类式实现写法
|
28天前
|
JavaScript 前端开发
记录Javascript数组类练习
记录Javascript数组类练习
|
3月前
|
JavaScript 前端开发
记录Javascript数组类练习
记录Javascript数组类练习
19 1
|
3月前
|
JavaScript 前端开发 Java
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
41 2
|
3月前
|
存储 JavaScript 前端开发
【JavaScript】JavaScript 中的 Class 类:全面解析
【JavaScript】JavaScript 中的 Class 类:全面解析
59 1
|
3月前
|
存储 JSON JavaScript
Node.js Buffer(缓冲区)
Node.js Buffer(缓冲区)
23 1
|
2月前
|
JavaScript 索引
js 类数组 转 数组
js 类数组 转 数组
32 0
|
2月前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(二)
JavaScript编码之路【ES6新特性之Class类】(二)
18 0