美文网首页
Node Buffer模块常用方法

Node Buffer模块常用方法

作者: 弱冠而不立 | 来源:发表于2020-09-18 20:35 被阅读0次

Buffer 类被引入作为 NodeJS API 的一部分,使其可以在 TCP 流或文件系统操作等场景中处理二进制数据流。Buffer 对象用于表示固定长度的字节序列。
Buffer 属于 Global 对象,使用时不需引入,且 Buffer 的大小在创建时确定,无法调整。

  • 创建
    • Buffer.alloc(bufferLen)Buffer.allocUnsafe(bufferLen)
const { Buffer } = require("buffer");
let buf1 = Buffer.alloc(1);
let buf2 = Buffer.allocUnsafe(1);

console.log(buf1);
console.log(buf2);
Buffer.alloc 创建的Buffer是被初始化过的,即每一项都用 00 填充。而 Buffer.allocUnsafe 创建的Buffer并没有经过初始化,是直接使用内存中闲置的缓冲区
  • Buffer.from(string/array/buffer, unicode)
const { Buffer } = require("buffer");;
let bufFromStr = Buffer.from("hello world", "utf-8");
let bufFromArr = Buffer.from([1,10,"8","$"]);
let bufFromBuffer = Buffer.from(bufFromStr);

console.log(bufFromStr);
console.log(bufFromArr);
console.log(bufFromBuffer);
console.log(bufFromBuffer == bufFromStr);
bufFromStr =  bufFromArr;
console.log(bufFromBuffer);
Buffer.from 获取的会重新创建一个全新的地址,而不是直接引用之前的地址
  • 填充:buf.fill(value, start=0, end=bufferLen)

value:将要填充的数据;
start:填充数据的开始位置,不指定默认为 0;
end:填充数据的结束位置,不指定默认为 Buffer 的长度。

let buf1 = Buffer.alloc(3);
let buf2 = Buffer.alloc(3);

console.log(buf1.fill(1));
console.log(buf2.fill(1,0,1));
buf1 将所有位置都填充,而 buf2 只是从下标为 0 开始填充,填充的长度为 1
  • 复制:buf.copy(target, targetStart, sourceStart, sourceEnd)

target:目标 Buffer
targetStart:目标 Buffer 的起始位置
sourceStart:源 Buffer 的起始位置
sourceEnd:源 Buffer 的结束位置(不包含)

let buf1 = Buffer.alloc(3);
let buf2 = Buffer.alloc(3);

buf1.fill(abc);

buf1.copy(buf2,1,0,1);

console.log(buf1);
console.log(buf2);
从 buf1 0 号位置开始复制到 1 号(不包括)位置,至 buf2 的 1 号位置
  • 截取 (类似字符串,数组):buf.slice
  • 查找 (类似字符串,数组):buf.indexOf
  • 拼接(类似字符串,数组):buf.concat

相关文章

  • Node Buffer模块常用方法

    Buffer 类被引入作为 NodeJS API 的一部分,使其可以在 TCP 流或文件系统操作等场景中处理二进制...

  • Node核心API0921

    Node核心API 1.Buffer对象 js代码 2.Buffer实例方法 js代码 3.Buffer静态方法 ...

  • Node.js使用Buffer类处理二进制数据(二)

    Node.js使用Buffer类处理二进制数据(一) Buffer类的方法 (1)isBuffer()方法:该方法...

  • Node fs模块常用方法

    要使用此模块: const fs = require("fs") 注:所有的文件系统操作都具有同步的、回调的、以及...

  • Node核心模块(1):Buffer

    Buffer是node的核心模块,开发者可以利用它来处理二进制数据,比如文件流的读写、网络请求数据的处理等。 Bu...

  • node中的核心模块

    node的模块有很多,但常用的只有几个核心模块,例如fs文件系统模块,path模块,http模块等。node中的J...

  • ejs filter使用

    node安装ejs模块后,在ejs/lib/filters.js文件中有很多常用的方法如: 使用方法: 结果:AB...

  • 1.8 Angular 使用require()

    require是node.js中常用方法,用于引入模块、 JSON、或本地文件。Angular使用会报错 Cann...

  • Angular 使用require()

    require是node.js中常用方法,用于引入模块、 JSON、或本地文件。Angular使用会报错 Cann...

  • nodeJs学习笔记(4) --- Stream

    Buffer Buffer 用来创建专门存放二进制的一个缓存区。Buffer库为Node带来一种原始储存数据的方法...

网友评论

      本文标题:Node Buffer模块常用方法

      本文链接:https://www.haomeiwen.com/subject/dzljyktx.html