Buffer.concat()

Buffer.concat(list[, totalLength])

  • list {Array} 需要连接的 Buffer 对象数组
  • totalLength {Number} 上述需要被连接的 Buffer 的总大小。
  • 返回:{Buffer}

返回一个连接了 list 中所有 Buffer 的新 Buffer 。
如果 list 中没有项目,或者当 totalLength 为 0 时,将返回一个 0 长度(zero-length)的 Buffer 。
如果没有提供 totalLength ,它将计算 list 中的 Buffer(以获得该值)。然而,这增加了额外的函数循环,提供精准的长度将加速计算。
例如:将一个包含三个 Buffer 的数组构建为一个单一的 Buffer :

const buf1 = Buffer.alloc(10, 0);
const buf2 = Buffer.alloc(14, 0);
const buf3 = Buffer.alloc(18, 0);
const totalLength = buf1.length + buf2.length + buf3.length;

console.log(totalLength);
const bufA = Buffer.concat([buf1, buf2, buf3], totalLength);
console.log(bufA);
console.log(bufA.length);

// 42
// <Buffer 00 00 00 00 ... >
// 42

原文地址:https://www.cnblogs.com/lalalagq/p/9908505.html

时间: 2024-10-09 07:03:29

Buffer.concat()的相关文章

node.js里的buffer常见操作,copy,concat等实例讲解

//通过长度构建的buffer内容是随机的 var buffer=new Buffer(100); console.log(buffer); //手动清空buffer,一般创建buffer不会清空 buffer.fill(0); //通过字符串创建buffer //字符串具有不变性 var str="阿尼"; var buffer=new Buffer(str); console.log(buffer) // 通过数据创建 ,一般这种方式用的较少 var buffer=new Buff

node.js Stream Buffer FsPromise

Stream: 类似这样:a.pipe(b).pipe(c); 我想写一个b.所以: var rs=new (require('stream').Readable)(); var ws=new (require('stream').Writable)(); rs._read=function(){ this.push('send a msn for the first time'); this.push('send a msn for the second time'); this.push(n

Buffer -nodejs

纯 JavaScript 对 Unicode 友好但是无法很好地处理二进制数据.当我们面对类似 TCP 流或文件系统时,是需要处理八位流的.Node 有几种操作.创建以及消费八位流的策略.原始数据保存在 Buffer 类的实例中.一个 Buffer 实例类似于一个整数数组,但对应着 V8 堆之外的一个原始内存分配区域.一个 Buffer 的大小不可变.Buffer 类是一个全局的类,是一个比较罕见的不需要 require('buffer') 就可以使用的类.在Buffers和JavaScript

【node.js】Buffer(缓冲区)

Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区. 创建 Buffer 类 Node Buffer 类可以通过多种方式来创建. 1.创建长度为 10 字节的 Buffer 实例: var buf = new Buffer(10); 2.通过给定的数组创建 Buffer 实例: var buf = new Buffer([10, 20, 30, 40, 50]); 3.通过一个字符串来创建 Buffer 实例: var buf = new Buffer("

Node.js系列:Buffer类的使用

客户端JavaScript中没有对二进制数据提供很好的支持.但是在处理TCP流或文件流时,必须要处理二进制数据.Node.js定义了一个Buffer类,用来创建一个专门存放二进制数据的缓存区. Buffer中存的数据默认为16进制. 1.创建Buffer对象 在Node.js中,Buffer类是一个可以在任何模块中不使用的全局类,不要单独加载.可以使用New关键字来创建该类的实例对象. Buffer类有三种形式的构造函数: 第一种:将缓存区大小(以字节为单位)作为构造函数的参数 var size

buffer正确的拼接方式

var chunks = []; var size = 0; res.on('data',function(chunk){ chunks.push(chunk); size+= chunk.length; }); res.on('end',function(){ var buf = Buffer.concat(chunks,size); var str= iconv.decode(buf,'utf8'); //引入iconv-lite console.log(str); });

node.js的Buffer类

1.创建 创建一个长度为256的Buffer实例:var buf = new Buffer(256); 创建一个数组:var buf = new Buffer([10, 20, 30, 40, 50]); 创建一个字符串:var buf = new Buffer("12345", "utf-8");utf-8为编码方式,还有"ascii", "utf8", "utf16le", "ucs2&quo

[Node.js]Buffer

摘要 在js中是没有二进制类型的,但在处理tcp或者文件流时,必须使用到二进制数据,因此Node.js定义了一个Buffer类型,该类型用来创建一个专门存储二进制数据的缓存区.在Node.js中,Buffer类是随Node内核一起发布的核心库.Buffer库为Node.js带来了一种存储原始数据的办法,可以让Node.js处理二进制数据,每当需要在Node.js中处理I/O操作中移动的数据时,就有可能使用Buffer库.原始数据存储在Buffer类的实例中.一个Buffer类似于证书数组,但她对

nodejs中Buffer的创建和转换

buffer是用来做什么?主要是用来处理二进制文件流和TCP流的文件缓存区.我们可以将二进制流和string,json,int进行转换,也可以进行复制,或者通过自带的函数进行判断buffer的一些状态. 创建Buffer对象(实例) 1.使用var buffer = new Buffer(size)创建对象,然后用buffer.fill(value,[offset],[end])来初始化对象. 2.使用var buffer = new Buffer(array)创建对象. 3.使用var buf