📜  Node.js Buffer.from() 方法(1)

📅  最后修改于: 2023-12-03 15:03:12.223000             🧑  作者: Mango

Node.js Buffer.from() 方法

在 Node.js 中,Buffer.from() 方法用于创建一个新的 Buffer 实例,用于存储二进制数据。

语法
Buffer.from(string, encoding = 'utf8')
Buffer.from(array)
Buffer.from(buffer)
Buffer.from(arrayBuffer[, byteOffset [, length]])
  • string:字符串数据,将被编码成 Buffer 实例。
  • encoding:指定字符串的编码方式,默认为 'utf8',如果参数是一个 Buffer 类型则忽略该参数。
  • array:表示要存储到缓冲区的数字数组。
  • buffer:要复制的 Buffer 实例。
  • arrayBufferArrayBuffer 实例,包含要存储的二进制数据。
  • byteOffset:数字,表示 Buffer 实例的初始偏移量,默认为 0
  • length:表示要创建的 Buffer 实例的长度。默认值为 arrayBuffer.byteLength - byteOffset
示例
使用字符串创建 Buffer 实例
const buf1 = Buffer.from('hello world', 'utf8');
console.log(buf1); // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
使用数字数组创建 Buffer 实例
const buf2 = Buffer.from([0x68, 0x65, 0x6c, 0x6c, 0x6f]);
console.log(buf2); // <Buffer 68 65 6c 6c 6f>
复制 Buffer 实例
const buf3 = Buffer.from('hello world', 'utf8');
const buf4 = Buffer.from(buf3);
console.log(buf4); // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
使用 ArrayBuffer 实例创建 Buffer 实例
const arr = new Uint16Array([0x1234, 0x5678, 0x90ab, 0xcdef]);
const buf5 = Buffer.from(arr.buffer);
console.log(buf5); // <Buffer 34 12 78 56 ab 90 ef cd>
总结

使用 Buffer.from() 方法,我们可以创建一个 Buffer 实例,并存储二进制数据。我们可以使用字符串、数字数组、Buffer 实例或 ArrayBuffer 实例来创建 Buffer 实例。在创建实例时,我们可以指定字符串的编码方式,也可以指定偏移量和长度。