• Node.js(3)-Buffer对象


    一、Buffer对象

    1、作用

            是node提供的处理二进制数据的对象。是node的内置对象,在使用时不需要安装,可以直接使用。不需要require('buffer')

    2、使用的原因

            JavaScript处理字符串的功能非常强大。但在二进制数据处理方面能力很弱,因此node就内置了buffer对象专门处理二进制数据。Buffer是构造函数,可以使用new创建Buffer的对象,浏览器的v8引擎会为Buffer的对象分配内存空间,类似于数组

    1. let buf = new Buffer(256) //256表示buf有256个单元,类似于数组,下标的范围在0-255之间
    2. console.log(buf);
    3. //强调:buf的每个单元存放的数据必须是0-255之间的整数值,即Buffer的每个单元就是一个字节
    4. // bit 位
    5. // Byte 字节
    6. // 1024Byte = 1KB
    7. // 1024KB = 1MB
    8. // 1024MB = 1GB

    3、Buffer可以和字符串进行互换

    二、Buffer构造函数

    1、给构造函数传递整数,表示分配多少个字节的存储空间

    let bytes = new Buffer(5) //表示给bytes分配5个字节的存储空间

    2、给构造函数传递数组:数组的成员必须是整数值

    let bytes = new Buffer([0x10,0x48]) //将数组传递给Buffer构造函数

    3.给构造函数传递字符串:默认的编码格式是utf8

    1. let b1 = new Buffer('蜗牛学苑','utf8')
    2. console.log(b1.toString());

    六、Buffer常用函数

    1、Buffer.isEncoding(字符集):参数字符集就是字符的编码格式(ASCII、utf8、base64).作用是判断Buffer的字符集是否是给定的字符集,如果是函数返回true,不是函数返回false

    2、Buffer.isBuffer(buffer):参数是一个Buffer的对象,判断参数是否是一个Buffer的实例

    3、Buffer.byteLength():返回字符串实际占有的字节长度

    七、实例属性

    1、length:表示Buffer对象的长度(单元个数)

    八、实例方法:用对象名调用的方法

    1、类的成员

            (1)实例成员:

            (2)类成员:静态成员,是提高类名直接访问,不属于某个具体的对象,而是类的所有对象共享的

    1. class Student {
    2. constructor(id,name){
    3.        Student.school = '蜗牛学院' //school是类成员(静态成员)
    4.        this.id = id
    5.        this.name = name
    6.   }
    7.    Student.setSchool = function(){ //类方法
    8.        
    9.   }
    10. show(){} //实例方法
    11. }
    12. let s1 = new Student(1,'A') //s1有自己的id和name
    13. let s2 = new Student(2,'B')

    2、Buffer的实例方法

    (1)write(value,index):向Buffer对象中写入数据

                    参数value表示写入的值

                    参数index表示写入的位置。可以省略

    * 使用Buffer时注意的问题:在创建Buffer对象时,node建议使用以下两个方法,而不建议使用new

            (1)Buffer.alloc(number,fill,encoding):返回一个对象

                            参数number必须是整数,代表buffer的单元个数

                            参数fill:表示填充数据。默认值为0

                            参数encoding:若填充数据是字符串,用来指定字符集(编码格式),默认值是utf8

            (2)Buffer.from(args1,args2):返回一个Buffer对象

                            参数args1:可以是字符串,也可以是数组

                            参数args2:若第一个参数是字符串,则用来指定字符集。

    1. let b2 = Buffer.from([0x41,0x42,0x71])  //数组作为参数
    2. console.log(b2.toString())
    3. let b2 = Buffer.from('蜗牛学苑','utf8') //字符串作为参数
    4. console.log(b2.toString())

  • 相关阅读:
    Temporal线上部署
    Java StringBuffer.append()方法具有什么功能呢?
    JavaEE平台技术——预备知识(Maven、Docker)
    Revit中顶对齐风管的绘制及“管线自动对齐”功能
    郑渝高铁有多牛?拿下多个“中国第一”
    CubeMx笔记 --CAN通讯
    解决wave.Error: unknown format: 3
    [mit6.1810] lab Utilities
    [1024]程序员节 一晃6年过去了
    修改 MySQL 最大连接数
  • 原文地址:https://blog.csdn.net/m0_65729457/article/details/127928474