zoukankan      html  css  js  c++  java
  • Buffer类

    Buffer的基本操作:

    Buffer本质上就是字节数组,Buffer对象是Node处理二进制数据的一个接口。

    它是Node原声提供的全局对象,可以直接使用,不需要require('buffer')。

    1.实例化:(静态方法)

    Buffer.from(array)

    Buffer.from(string)

    Buffer.alloc(size)

    2.功能方法:(静态方法

    Buffer.isEncoding('编码类型(如UTF8)') 判断是否支持该编码

    Buffer.isBuffer(obj)  判断是否为Buffer,传入的必须是一个对象

    Buffer.byteLength() 返回制定编码的字节长度,默认UTF8

    Buffer.concat()  将一组Buffer对象合并为一个Buffer对象

    3.实例方法:

    write()

    slice()

    toString()

    toJson()

    //实例化buf对象
    let buf = Buffer.alloc(5);     //分配五个字节,并都初始化为0
    console.log(buf);      //打印结果:<Buffer 00 00 00 00 00>
    
    //字符串
    let buf = Buffer.from('buffer');        //分配的是一个字符串
    let buf = Buffer.from('buffer','utf-8');    //两者打印结果一样
    console.log(buf);
    
    //静态方法
    console.log(Buffer.isEncoding('utf8'));    //打印结果:true
    console.log(Buffer.isEncoding('gbk'));     //打印结果:false
    
    let buf = Buffer.from('hello');
    console.log(Buffer.isBuffer(buf));   //打印结果:true
    console.log(Buffer.isBuffer({str:'hi'}));   //打印结果:false
    
    let buf = Buffer.from('中国','utf8');
    console.log(Buffer.byteLength(buf));   //打印结果:6  
    
    let buf1 = Buffer.alloc(3);
    let buf2 = Buffer.alloc(5);
    let buf3 = Buffer.concat([buf1,buf2]);   //拼接
    console.log(Buffer.byteLength(buf3));    //打印结果:8     8个字节
    
    let buf1 = Buffer.from('hello');
    let buf2 = Buffer.from('hi');
    let buf3 = Buffer.concat([buf1,buf2]);   //拼接
    console.log(Buffer.byteLength(buf3));    //打印结果:7     7个字节
    console.log(buf3.toString());      //打印结果:hellohi
    
    //实例方法
    let buf = Buffer.alloc(5);
    //第一个参数为要写入的字符串
    //第二个参数为起始位置,默认为0
    //第三个参数为要写入的长度,默认为字符串的长度减去起始位置
    //第四个参数为编码,默认为'utf8'
    buf.write('hello',2,3);    //<Buffer 00 00 68 65 6c>
    buf.write('hello');        //<Buffer 68 65 6c 6c 6f>
    
    let buf = Buffer.from('hello');
    //切片:
    //第一个参数为起始位置,默认为0
    //第二个参数为结束位置,默认为字符串的长度
    let buf1 = buf.slice(2,3);
    console.log(buf1.toString());    //打印结果:l
    
    //toJSON方法不需要显示调用,当
    const buf = Buffer.from('ahello');
    const json = JSON.stringify(buf);
    console.log(json);    //打印结果:{"type":"Buffer","data":[104,101,108,108,111]}   将字符串转化为十进制的数值
    
    const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
    const json = JSON.stringify(buf);
    console.log(json);    //打印结果:{"type":"Buffer","data":[1,2,3,4,5]}
  • 相关阅读:
    python's is&==区别
    python's decorator&wrapper
    objects & values & types
    linux sort命令
    partial function
    proc文件系统
    readlink 获取当前进程对应proc/self/exe
    Workgroup&Domain(Realm)
    python传值&值引用
    Unpacking Argument Lists
  • 原文地址:https://www.cnblogs.com/zcy9838/p/11589857.html
Copyright © 2011-2022 走看看