首页 > 编程语言 >【Node.JS】buffer类缓冲区

【Node.JS】buffer类缓冲区

时间:2022-10-29 16:38:12浏览次数:36  
标签:Node console 二进制 buffer JS Buffer xx buf1



目录

​​简介​​

​​创建Buffer类​​

​​使用Buffer类​​

​​例 ​​

​​直接使用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);
//指定大小

使用Buffer类

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

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());

【Node.JS】buffer类缓冲区_二进制数

七个汉字,一共占有了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);

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

【Node.JS】buffer类缓冲区_二进制数_02

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

直接使用buffer类

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

【Node.JS】buffer类缓冲区_javascript_03

 

【Node.JS】buffer类缓冲区_node.js_04

标签:Node,console,二进制,buffer,JS,Buffer,xx,buf1
From: https://blog.51cto.com/u_15830125/5806235

相关文章

  • 【Node.JS】事件的绑定与触发
    目录​​简介​​​​绑定事件​​​​on()​​​​addListener()​​​​ once()​​​​监听事件emit()​​​​ 传参​​​​ 删除事件​​​​removeListener()​​​​ remov......
  • 【Node.JS】写入文件内容
    fs.writeFile()语法格式fs.writeFile(filepath,data[,options],callback)参数一:必选参数,为被写入文件的路径,字符串格式参数二:必选参数,表示写入的内容。参数三:可选参数,表示以什......
  • js-基础排序实现(冒泡排序,快速排序,选择排序,插入排序,希尔排序,归并排序,堆排序)
    冒泡排序:两个指针循环,遇到不合适就交换,直到将符合要求的浮到边界functionbubbleSort(list){ for(leti=0;i<list.length;i++){ for(letj=0;j<list.length-i-1;j++)......
  • 【JS ES6】use strict 严格模式
    目录​​什么是严格模式​​​​启用严格模式​​​​严格模式中的变化​​由于JavaScript语法不够严谨,一直被人们所诟病,例如在使用一个变量时,可以不使用var关键字来提......
  • [JS ES6]传值和传址
     目录​​传值​​​​什么是传值​​​​ 例 ​​​​传址​​​​什么是传址​​​​例 ​​传值什么是传值leta=1;letb=a;console.log(a,b);//11 传值是......
  • js-合法URL
    常用正则符号. 查找单个字符,除了换行和行结束符\w 查找单词字符\W 查找非单词字符\d 查找数字\D 查找非数字字符\s 查找空白字符\S 查找非空白字符\b 匹配单词边......
  • jsp 中 out 输出流 和 response.getwriter()输出流
    1)jsp中out和response的writer的区别演示<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C/......
  • jsp 九大内置对象和四大域对象
    jsp九大内置对象我们打开翻译后的java文件。查看_jspService方法。 request对象请求对象,可以获取请求信息response对象响应对象。可以设置响应信息pageContext对......
  • jsp 的语法(重点掌握)
    jsp文件头部声明介绍(page指令介绍)<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%> 这是jsp文件的头声明。表示这是jsp页......
  • jsp 的运行原理
    jsp的本质,其实是一个Servlet程序。首先我们去找到我们Tomcat的目录下的work\Catalina\localhost目录。当我们发布day09工程。并启动Tomcat服务器后。我们发现在......