当前位置: 首页 > news >正文

Node.js(2)—— Buffer

Buffer中文译名为缓冲区,是一个类似于Array的对象,用于表示固定长度的字节序列。可以说buffer是一段固定长度的内存空间,用于处理二进制数据

buffer的特点:

  • Buffer大小固定且无法调整
  • Buffer性能较好,可以直接对计算机内存进行操作
  • 每个元素的大小为1字节。(1 Byte = 8 bit)

Buffer的创建和使用

Buffer的创建有三种方式,分别是:alloc、allocUnsafe、from。

1、alloc

我们先来看一段代码:

let buf1 = Buffer.alloc(10);

表示创建了一个长度为10字节的Buffer。在这个地方的Buffer可以看做全局变量。我们打印一下buf变量来观察Buffer。

console.log(buf1);

可以看到共有十个二进制位,且每一个二进制位都会归零

2、allocUnsafe

同样来看代码:

let buf2 = Buffer.allocUnsafe(10);
console.log(buf2);

输出结果和alloc一模一样。和alloc不同的是,allocUnsafe创建的Buffer可能包含旧的内存数据,因此名字中有个unsafe。

3、from

from可以将字符串或数组转移为buffer.

同样来看代码:

let buf3 = Buffer.from('hello');
console.log(buf3);

运行后的结果为:

打印出的是hello五个字母对应的ASCII码的十六进制表示。同样的,数组也能使用from来表示,这里就不演示了。

操作与注意事项

Buffer与字符串的转换

我们先建立一个文件,输入下面的代码;将数组转换为Buffer:

let buf = Buffer.from([105,108,111,118,101,121,111,117]);
console.log(buf.toString());

toString 方法可以将变量转换为字符串形式。我们运行之后的结果为打印出了iloveyou。即为该数组转换后的字符串形式。

Buffer元素的读写

其实这部分和数组很相似。我们来看下面的代码:

let Buf = Buffer.from('hello');
console.log(Buf[0]);

运行结果为打印出105;对应字母h。我们可以看到可以通过使用下标的方式来访问Buffer中的元素。同样可以对元素进行赋值修改。

http://www.dtcms.com/a/349380.html

相关文章:

  • 安卓Android低功耗蓝牙BLE连接异常报错133
  • Docker Compose 部署 Elasticsearch 8.12.2 集成 IK 中文分词器完整指南
  • Go初级三
  • 上海AI实验室突破扩散模型!GetMesh融合点云与三平面,重塑3D内容创作
  • 少儿舞蹈小程序需求规格说明书
  • AutoCAD Electrical缺少驱动程序“AceRedist“解决方法
  • 【STM32】G030单片机的独立看门狗
  • ELKB日志分析平台 部署
  • 完美世界招数据仓库工程师咯
  • ArcGIS JSAPI 高级教程 - 创建渐变色材质的自定义几何体
  • three.js+WebGL踩坑经验合集(8.3):合理设置camera.near和camera.far缓解实际场景中的z-fighting叠面问题
  • 大数据平台ETL任务导入分库分表数据
  • Jenkins+docker 微服务实现自动化部署安装和部署过程
  • TDengine IDMP 应用场景:电动汽车
  • AI测试工具midsence和browse_use的使用场景和差异
  • react+taro打包到不同小程序
  • Flutter旧版本升级-> Android 配置、iOS配置
  • 机器视觉的3C玻璃盖板丝印应用
  • KeepAlived+Haproxy实现负载均衡(SLB)
  • window显示驱动开发—混合系统 DDI 和 dList DLL 支持
  • Shell 循环编程:for 与 select 轻松入门
  • HTTP 与 HTTPS 深度解析:从原理到实际应用
  • Kubernetes (K8s)入门指南:Docker之后,为什么需要容器编排?
  • 安全合规:AC(上网行为安全)--下
  • LeetCode热题100--102. 二叉树的层序遍历--中等
  • 什么是JSON-RPC 2.0,在项目中应该怎么使用
  • 09-数据存储与服务开发
  • GPIO子系统自主实现(简单版)
  • C++ static 关键字面试深度解析
  • 匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率