码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Node.JS】buffer类缓冲区


    往期文章

    【Node.JS】事件的绑定与触发

    【Node.JS】写入文件内容

    【Node.JS】读取文件内容


    目录

    简介

    创建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。

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

    使用Buffer类

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

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

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

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

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

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

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

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

    例 

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

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

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

    直接使用buffer类

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

     

  • 相关阅读:
    Clickhouse—数据字典
    MobileNetV2详解与多动物分类实战
    web前端面试-- js深拷贝的一些bug,特殊对象属性(RegExp,Date,Error,Symbol,Function)处理,循环引用weekmap处理
    百看不厌的85M²现代极简装饰设计。福州中宅装饰,福州装修
    .NET高级技术_02委托、lambda、事件
    基线核查--渗透
    正则表达式
    STM32下载程序的三种方法(串口、ST-LINK、 ST-LINK Utility)
    Linux上的Redis客户端软件G-dis3
    Jenkins实践指南--pipeline概述
  • 原文地址:https://blog.csdn.net/m0_62360527/article/details/127549040
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号