Skip to main content
Buffer.copy - node__buffer.d.ts - Node documentation
method Buffer.copy

Usage in Deno

```typescript import { type Buffer } from "node:node__buffer.d.ts"; ```
Buffer.copy(
target: Uint8Array,
targetStart?: number,
sourceStart?: number,
sourceEnd?: number,
): number
Copies data from a region of `buf` to a region in `target`, even if the `target`memory region overlaps with `buf`. [`TypedArray.prototype.set()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set) performs the same operation, and is available for all TypedArrays, including Node.js `Buffer`s, although it takes different function arguments. ```js 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!!!!!!!!!!!!! ``` ```js 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: efghijghijklmnopqrstuvwxyz ```

Parameters

target: Uint8Array
A `Buffer` or Uint8Array to copy into.
optional
targetStart: number = 0
The offset within `target` at which to begin writing.
optional
sourceStart: number = 0
The offset within `buf` from which to begin copying.
optional
sourceEnd: number = buf.length
The offset within `buf` at which to stop copying (not inclusive).

Return Type

number
The number of bytes copied.