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]}
  • 相关阅读:
    android 中文 api (43) —— Chronometer
    SVN客户端清除密码
    Android 中文 API (35) —— ImageSwitcher
    Android 中文API (46) —— SimpleAdapter
    Android 中文 API (28) —— CheckedTextView
    Android 中文 API (36) —— Toast
    Android 中文 API (29) —— CompoundButton
    android 中文 API (41) —— RatingBar.OnRatingBarChangeListener
    Android 中文 API (30) —— CompoundButton.OnCheckedChangeListener
    Android 中文 API (24) —— MultiAutoCompleteTextView.CommaTokenizer
  • 原文地址:https://www.cnblogs.com/zcy9838/p/11589857.html
Copyright © 2011-2022 走看看