- Node.js教程
- Node.js - 教程
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 首次申请
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 活动
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 流程
- Node.js - 扩展应用程序
- Node.js - 包装
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲器
- Node.js - Streams
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 快速入门
- Node.js - MySQL创建数据库
- Node.js - MySQL创建表
- Node.js - MySQL Insert Into
- Node.js - MySQL Select From
- Node.js - MySQL Where 子句
- Node.js - MySQL Order By
- Node.js - MySQL Delete
- Node.js - MySQL Update
- Node.js - MySQL Join
- Node.js MongoDB
- Node.js - MongoDB 快速入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB Insert
- Node.js - MongoDB Find
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB Delete
- Node.js - MongoDB Update
- Node.js - MongoDB Limit
- Node.js - MongoDB Join
- Node.js模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - utility 模块
- Node.js - Web 模块
Node.js - Buffer.copy() 方法
NodeJS Buffer.copy() 方法会将源缓冲区对象的内容复制到目标缓冲区中。即使两个缓冲区之间存在内存重叠,也会复制内容。
语法
以下是 NodeJs copy() 方法的语法 -
buf.copy( target, targetStart, sourceStart, sourceEnd )
参数
- buffer.copy() 方法有四个参数。第一个参数目标是必需的,其余参数是可选的。
- target −这是一个必需的参数。它是源缓冲区对象将复制到的目标缓冲区对象。
- targetStart −它是指要从中开始写入的目标缓冲区内的偏移量。默认情况下为 0。
- sourceStart −它是指要开始复制的源缓冲区内的偏移量。默认情况下为 0。
- sourceEnd −它是指源缓冲区内要停止复制的偏移量。默认值为源缓冲区的长度。
返回值
buffer.copy() 方法返回复制的字节数。
例使用 NodeJS buffer.copy() 方法将内容从一个缓冲区复制到另一个缓冲区。
var buffer1 = Buffer.from('testing');
var buffer2 = Buffer.from('HELLO');
buffer2.copy(buffer1);
console.log("After copying the string in buffer1 is "+ buffer1.toString());
输出
在此示例中,我们将 buffer2 内的字符串 HELLO 复制到 buffer1。当您打印 buffer1 的内容时,您将获得以下输出 -
例
在此示例中,将在复制时使用 targetStart 参数。
var buffer1 = Buffer.from('testing');
var buffer2 = Buffer.from('HELLO');
buffer2.copy(buffer1, 3);
console.log("After copying the string in buffer1 is "+ buffer1.toString());
输出
在上面的示例中,我们使用 targetStart 作为 3。因此,在 buffer1 中,字符串正在测试,因此从偏移量 3 到字符串的末尾,buffer2 中的内容将被复制。
例
在此示例中,将使用 targetStart 和 sourceStart 使用 buffer.copy() 复制内容
var buffer1 = Buffer.from('testing');
var buffer2 = Buffer.from('HELLO');
buffer2.copy(buffer1, 2, 2);
console.log("After copying the string in buffer1 is "+ buffer1.toString());
输出
在上面的示例中,我们使用 targetStart 作为 2。因此,在 buffer1 中,字符串正在测试,因此从偏移量 2 到字符串的末尾,buffer2 中的内容将被复制。我们使用了 sourceStart,所以 buffer2 中的字符串是 HELLO,要复制的内容将从偏移量 2 开始,即 LLO 将是将复制到 buffer1 的内容。
例
现在让我们使用 Buffer.copy() 方法附带的所有参数。
var buffer1 = Buffer.from('testing');
var buffer2 = Buffer.from('HELLO');
buffer2.copy(buffer1, 2, 0, 3);
console.log("After copying the string in buffer1 is "+ buffer1.toString());
输出
在上面的示例中,我们使用了 tartgetStart、sourceStart 和 sourceEnd 参数。因此,将从源缓冲区中选取的字符串是 HEL,相同的字符串将从偏移量 2 复制到 buffer1。
例
在此示例中,将使用 Buffer.allocUnsafe() 方法创建一个缓冲区,然后使用 Unicode 值向其添加字符。
var buffer1 = Buffer.allocUnsafe(10);
var buffer2 = Buffer.from('HELLO');
for (let i = 0; i < 10; i++) {
//109 is for character m, it will increment and n,o,p..will get added.
buffer1[i] = i + 109;
}
console.log("The string in buffer1 is "+buffer1.toString());
buffer2.copy(buffer1, 2);
console.log("The string in buffer1 is "+buffer1.toString());
输出
我们使用 Buffer.allocUnsafe() 在 buffer1 中分配了 10 个字节。稍后,我们使用 for 循环从 0 到 10 进行循环,并向 buffer1 添加字符。buffer2 的内容从 buffer1 中 2 开始的偏移量复制到 buffer1 内部。
当您执行上述代码时,输出如下所示 -
The string in buffer1 is mnHELLOtuv
例
当您尝试在参数 targetStart 和 sourceStart 中使用小于零的值时,它将抛出错误。
让我们看一个例子,当我们使用 targetStart 和 sourceStart 小于零时。
var buffer1 = Buffer.from('testing');
var buffer2 = Buffer.from('HELLO');
buffer2.copy(buffer1, -1, -1, 3);
console.log("After copying the string in buffer1 is "+ buffer1.toString());
输出
对于上述示例,您将收到一个错误,因为我们使用 targetStart 和 sourceStart 作为 -1。默认值为 0,小于 0 将抛出并出错,如下面的输出所示