首页 > 编程学习 > Node.js(3)-Buffer对象

Node.js(3)-Buffer对象

发布时间:2022/11/19 8:08:46

一、Buffer对象

1、作用

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

2、使用的原因

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

let buf = new Buffer(256) //256表示buf有256个单元,类似于数组,下标的范围在0-255之间
console.log(buf);

//强调:buf的每个单元存放的数据必须是0-255之间的整数值,即Buffer的每个单元就是一个字节
// bit 位
// Byte 字节
// 1024Byte = 1KB
// 1024KB = 1MB
// 1024MB = 1GB

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

二、Buffer构造函数

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

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

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

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

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

let b1 = new Buffer('蜗牛学苑','utf8')
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)类成员:静态成员,是提高类名直接访问,不属于某个具体的对象,而是类的所有对象共享的

class Student {
    constructor(id,name){
        Student.school = '蜗牛学院' //school是类成员(静态成员)
        this.id = id
        this.name = name
    }
    Student.setSchool = function(){ //类方法
        
    }
    show(){} //实例方法
}
let s1 = new Student(1,'A') //s1有自己的id和name
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:若第一个参数是字符串,则用来指定字符集。

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

Copyright © 2010-2022 dgrt.cn 版权所有 |关于我们| 联系方式