Buffer对象是Node处理二进制数据的一个接口。它是Node原生提供的全局对象,可以直接使用,不需要require(‘buffer’)。

静态方法:

  • Buffer.isEncoding() 判断是否支持该编码
  • Buffer.isBuffer() 判断是否为 Buffer
  • Buffer.byteLength() 返回指定编码的字节长度,默认 utf8
  • Buffer.concat() 将一组Buffer 对象合并为一个 Buffer 对象
  1. Buffer.isEncoding() 判断是否支持该编码
// Buffer.isEncoding() 判断是否支持该编码
console.log(Buffer.isEncoding('utf8'));   // 返回true
console.log(Buffer.isEncoding('ascii'));  // 返回true
console.log(Buffer.isEncoding('utf16le'));  // 返回true
console.log(Buffer.isEncoding('ucs2'));    // 返回true
console.log(Buffer.isEncoding('base64'));  // 返回true
console.log(Buffer.isEncoding('latin1'));  // 返回true
console.log(Buffer.isEncoding('binary'));  // 返回true
console.log(Buffer.isEncoding('hex'));    // 返回true
console.log(Buffer.isEncoding('gbk'));   // 返回false
  1. Buffer.isBuffer() 判断是否为 Buffer
// Buffer.isBuffer() 判断是否为 Buffer
let buf = Buffer.from('Hello');
console.log(Buffer.isBuffer(buf)); // 返回 true
console.log(Buffer.isBuffer({}));  // 返回 false
  1. Buffer.byteLength() 返回指定编码的字节长度,默认 utf8
// Buffer.byteLength() 返回指定编码的字节长度,默认 utf8
let buf_1 = Buffer.from('基础', 'ascii');
console.log(Buffer.byteLength(buf_1));
console.log(buf_1);
console.log(buf_1.toString());
console.log("----------------------");
let buf_2 = Buffer.from('基础', 'utf8');
console.log(Buffer.byteLength(buf_2));
console.log(buf_2);
console.log(buf_2.toString());
console.log("----------------------");
let buf_3 = Buffer.from('基础', 'utf16le');
console.log(Buffer.byteLength(buf_3));
console.log(buf_3);
console.log(buf_3.toString());
console.log("----------------------");

运行结果:

  1. Buffer.concat() 将一组Buffer 对象合并为一个 Buffer 对象
    (1)将初始的2个实例化对象进行合并
// Buffer.concat() 将一组Buffer 对象合并为一个 Buffer 对象
let buf_1 = Buffer.alloc(4);
let buf_2 = Buffer.alloc(5);
let buf_3 = Buffer.concat([buf_1, buf_2]);
console.log(Buffer.byteLength(buf_3));  // 返回字节长度为 9

(2)将字符串进行合并

// Buffer.concat() 将一组Buffer 对象合并为一个 Buffer 对象
let buf_1 = Buffer.from('VV');
let buf_2 = Buffer.from('cat');
let buf_3 = Buffer.concat([buf_1, buf_2]);
console.log(Buffer.byteLength(buf_3));   // 合并后返回字节长度为 5
console.log(buf_3.toString());     // 返回字符串为 VVcat

Node.js Buffer静态方法相关推荐

  1. 【Nodejs】448- 深入学习 Node.js Buffer

    预备知识 ArrayBuffer ArrayBuffer 对象用来表示通用的.固定长度的原始二进制数据缓冲区.ArrayBuffer 不能直接操作,而是要通过类型数组对象 或 DataView 对象来 ...

  2. Node.js Buffer(缓冲区)

    一.Node.js Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了 ...

  3. Node.js—Buffer对象

    Node.js-Buffer对象 1 概述 2 基本操作 3 与二进制数组的关系 4 Buffer类 5 Buffer构造函数 6 Buffer类的方法(函数) 6.1 Buffer.isEncodi ...

  4. Node.js Buffer

    目录 I/O 操作中传输数据的格式 文件 I/O 中数据格式 网络 I/O 中的数据格式 JavaScript与二进制数据 Node.js 的 Buffer类 Buffer是啥 Buffer对象的内存 ...

  5. Node JS Buffer使用理解

    JavaScript 起初为浏览器而设计,没有读取或操作二进制数据流的机制.Buffer类的引入,则让NodeJS拥有操作文件流或网络二进制流的能力. Buffer基本概念 Buffer 对象的内存分 ...

  6. Node.js Buffer的使用

    一. 认识Buffer 1.1. 数据的二进制 计算机中所有的内容:文字.数字.图片.音频.视频最终都会使用二进制来表示. JavaScript可以直接去处理非常直观的数据:比如字符串,我们通常展示给 ...

  7. 【学习笔记】Node.js Buffer(缓冲区)和Stream流的关系

    JavaScript 语言自身只有字符串数据类型,没有二进制数据类型.处理文件流和处理TCP流(如文件之间传数据),必须使用到二进制数据,因此有了Buffer类,该类用来创建一个专门存放二进制数据的缓 ...

  8. 22. Node.Js Buffer类(缓冲区)-(二)

    转自:https://blog.csdn.net/u011127019/article/details/52512242 转载于:https://www.cnblogs.com/sharpest/p/ ...

  9. node.js 系列——Buffer

    Buffer缓存对象 纯粹的Javascript 对Unicode 很友好,但是操作二进制数据就不怎么在行了.处理TCP 数据流或者文件时,必 须要操作二进制数据流.node 提供了一些方法来创建.操 ...

最新文章

  1. html5网页仿写,纯CSS代码模仿绘制蚂蚁庄园页面
  2. 安卓import android.support.v7.app.AppCompatActivity报错
  3. hdu 4614 Vases and Flowers
  4. what should you do if you want to become an expert in one domain
  5. 使用泛型前 VS 使用泛型后
  6. Mac JDK 卸载方法
  7. java函数调用实例_Java使用方法引用实现任意对象的实例方法
  8. 解决 Exchange 2013提示“出现意外错误,无法处理您的请求”,无法打开OWA和ECP...
  9. Codevs 5208 求乘方取模
  10. 蓝桥杯(李白喝酒Java)
  11. Docker mongo:5.0
  12. 嫦娥奔月(神话,非航天器)
  13. 人人皆可做的抖音108个赚钱项目:抖音美妆行业赚钱术(10)
  14. http://www.dewen.net.cn/q/14879/搜索引擎结果自动跳转
  15. win10的基础上安装win7
  16. H3C交换机远程更改中文配置乱码,交换机中文乱码不显示
  17. 成三棋、九子棋、十二子棋
  18. 如何在WordPress插入Bilibili视频
  19. 计算机 小学数学应用题教学设计,小学数学解决问题的教案4篇
  20. Angle Beats(计算几何)

热门文章

  1. [算法]一次商品交易利益最大化
  2. C# AppDomain
  3. Event ID 5553 failure trying to synch sitexxxx for ContentDB xx WebApp xx. Exception message ...
  4. hp 服务器系统无法启动不了怎么办,HP Elite X2 1011 G1 笔记本电脑 - 电脑无法启动至预启动执行环境...
  5. 在android上面让TextView 过多的文字实现有滚动条 scrollview
  6. ScrollView中嵌套ListView
  7. HDU1007 查找平面最近点对
  8. golang中的http服务器
  9. 常考数据结构与算法: NC19 连续子数组的最大和
  10. 常考数据结构与算法:买卖股票的最好时机