📜  Node.js Buffer.copy() 方法

📅  最后修改于: 2022-05-13 01:56:38.912000             🧑  作者: Mango

Node.js Buffer.copy() 方法

缓冲区是一种临时内存存储器,用于在将数据从一个地方移动到另一个地方时存储数据。它就像一个整数数组。

Buffer.copy() 方法只是将所有值从输入缓冲区复制到另一个缓冲区。

句法:

buffer.copy( target, targetStart, sourceStart, sourceEnd )

参数:此方法接受上面提到的两个参数,如下所述:

  • 目标:它是一个缓冲区,您需要在其中复制所有值。
  • targetStart:它是指目标缓冲区的元素将开始写入的起始索引。它的默认值为 0。
  • sourceStart:它是输入缓冲区的索引,值的复制将从该索引开始。它的默认值为 0。
  • sourceEnd:输入缓冲区的索引,将完成值的复制。它的默认值为 buffer.length 大小。

返回值:该方法返回的数字表示复制的字节数。

注意:即使目标内存区域(索引)已经存在,也会从输入缓冲区复制值并将它们覆盖到输出缓冲区。即使目标内存区域与输入缓冲区重叠,也将数据从输入缓冲区的区域复制到目标缓冲区中的区域。

下面的例子说明了 Node.js 中Buffer.includes() 方法的使用:

示例 1:

// Node.js program to demonstrate the  
// Buffer.copy() Method 
      
// Creating a buffer
var buffer2 = Buffer.from('for');
  
var buffer1 = Buffer.from('GeeksandGeeks');
  
buffer2.copy(buffer1, 5, 0);
  
console.log(buffer1.toString());

输出:

GeeksforGeeks

示例 2:

// Node.js program to demonstrate the  
// Buffer.copy() Method
  
var buffer2 = Buffer.allocUnsafe(5);
  
var buffer1 = Buffer.from('Geeks');
  
for (let i = 0; i < 5; i++) {
   
    // Adds: 'a b c d e' as 97 98 99 100 101
    // are their respective ASCII values
    buffer2[i] = i + 97;
}
  
buffer2.copy(buffer1, 2);
  
// Prints 'Geabc' as the input buffer1
// carries 'Geeks' and we provided the
// targetStart index as 2
// so elements will replace the values in
// buffer1 starting from index 2
  
console.log(buffer1.toString());

输出:

Geabc

注意:以上程序将使用node index.js命令编译运行。

参考: https://nodejs.org/api/buffer.html#buffer_buf_copy_target_targetstart_sourcestart_sourceend