buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])
-
target<Buffer> | <Uint8Array> 要复制到的Buffer或 <Uint8Array>。\
target<Buffer> | <Uint8Array> ABufferor <Uint8Array> to copy into. -
targetStart<integer>target内开始写入的偏移量。默认值:0。\
targetStart<integer> The offset withintargetat which to begin writing. Default:0. -
sourceStart<integer>buf内开始复制的偏移量。默认值:0。\
sourceStart<integer> The offset withinbuffrom which to begin copying. Default:0. -
sourceEnd<integer>buf内停止复制的偏移量(不包括)。默认值:buf.length。\
sourceEnd<integer> The offset withinbufat which to stop copying (not inclusive). Default:buf.length. -
返回:<integer> 复制的字节数。
\Returns: <integer> The number of bytes copied.
将数据从 buf 的区域复制到 target 的区域,即使 target 内存区域与 buf 重叠。
\Copies data from a region of buf to a region in target, even if the target
memory region overlaps with buf.
TypedArray.prototype.set() 执行相同的操作,并且可用于所有 TypedArrays,包括 Node.js Buffer,尽管它采用不同的函数参数。
\TypedArray.prototype.set() performs the same operation, and is available
for all TypedArrays, including Node.js Buffers, although it takes
different function arguments.
import { Buffer } from 'node:buffer'; // Create two `Buffer` instances. const buf1 = Buffer.allocUnsafe(26); const buf2 = Buffer.allocUnsafe(26).fill('!'); for (let i = 0; i < 26; i++) { // 97 is the decimal ASCII value for 'a'. buf1[i] = i + 97; } // Copy `buf1` bytes 16 through 19 into `buf2` starting at byte 8 of `buf2`. buf1.copy(buf2, 8, 16, 20); // This is equivalent to: // buf2.set(buf1.subarray(16, 20), 8); console.log(buf2.toString('ascii', 0, 25)); // Prints: !!!!!!!!qrst!!!!!!!!!!!!!const { Buffer } = require('node:buffer'); // Create two `Buffer` instances. const buf1 = Buffer.allocUnsafe(26); const buf2 = Buffer.allocUnsafe(26).fill('!'); for (let i = 0; i < 26; i++) { // 97 is the decimal ASCII value for 'a'. buf1[i] = i + 97; } // Copy `buf1` bytes 16 through 19 into `buf2` starting at byte 8 of `buf2`. buf1.copy(buf2, 8, 16, 20); // This is equivalent to: // buf2.set(buf1.subarray(16, 20), 8); console.log(buf2.toString('ascii', 0, 25)); // Prints: !!!!!!!!qrst!!!!!!!!!!!!!
import { Buffer } from 'node:buffer'; // Create a `Buffer` and copy data from one region to an overlapping region // within the same `Buffer`. const buf = Buffer.allocUnsafe(26); for (let i = 0; i < 26; i++) { // 97 is the decimal ASCII value for 'a'. buf[i] = i + 97; } buf.copy(buf, 0, 4, 10); console.log(buf.toString()); // Prints: efghijghijklmnopqrstuvwxyzconst { Buffer } = require('node:buffer'); // Create a `Buffer` and copy data from one region to an overlapping region // within the same `Buffer`. const buf = Buffer.allocUnsafe(26); for (let i = 0; i < 26; i++) { // 97 is the decimal ASCII value for 'a'. buf[i] = i + 97; } buf.copy(buf, 0, 4, 10); console.log(buf.toString()); // Prints: efghijghijklmnopqrstuvwxyz