阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js Buffer buf.copy

      Node.js Buffer buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])新增于: v0.1.90

      • target < Buffer> | < Uint8Array> 要拷贝进的 Buffer 或 Uint8Array。
      • targetStart < integer> target 中开始写入的偏移量。默认为 0。
      • sourceStart < integer> buf 中开始拷贝的偏移量。默认为 0。
      • sourceEnd < integer> buf 中结束拷贝的偏移量(不包含)。默认为 buf.length。
      • 返回: < integer> 拷贝的字节数。

      拷贝 buf 中某个区域的数据到 target 中的某个区域,即使 target 的内存区域与 buf 的重叠。

      // 创建两个 `Buffer`。
      const buf1 = Buffer.allocUnsafe(26);
      const buf2 = Buffer.allocUnsafe(26).fill('!');
      
      for (let i = 0; i < 26; i++) {
        // 97 是 'a' 的十进制 ASCII 值。
        buf1[i] = i + 97;
      }
      
      // 拷贝 `buf1` 中第 16 至 19 字节偏移量的数据到 `buf2` 第 8 字节偏移量开始。
      buf1.copy(buf2, 8, 16, 20);
      
      console.log(buf2.toString('ascii', 0, 25));
      // 输出: !!!!!!!!qrst!!!!!!!!!!!!!
      
      // 创建一个 `Buffer`,并拷贝同一 `Buffer` 中一个区域的数据到另一个重叠的区域。
      
      const buf = Buffer.allocUnsafe(26);
      
      for (let i = 0; i < 26; i++) {
        // 97 是 'a' 的十进制 ASCII 值。
        buf[i] = i + 97;
      }
      
      buf.copy(buf, 0, 4, 10);
      
      console.log(buf.toString());
      // 输出: efghijghijklmnopqrstuvwxyz
      

      更多内容请参考:Node.js Buffer 缓冲器,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录