1# @ohos.buffer (Buffer) 2 3Buffer对象用于表示固定长度的字节序列,是专门存放二进制数据的缓存区。 4 5**推荐使用场景:** 可用于处理大量二进制数据,图片处理、文件接收上传等。 6 7> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 8> 9> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 10 11## 导入模块 12 13```ts 14import buffer from '@ohos.buffer'; 15``` 16 17## BufferEncoding 18 19表示支持的编码格式字符串。 20 21**系统能力:** SystemCapability.Utils.Lang 22 23| 编码格式 | 说明 | 24| ------- | -------------------- | 25| 'ascii' | 表示ascii格式,不区分大小写。 | 26| 'utf8' | 表示utf8格式,不区分大小写。 | 27| 'utf-8' | 表示utf8格式,不区分大小写。 | 28| 'utf16le' | 表示utf16小端序格式,不区分大小写。 | 29| 'ucs2' | 表示utf16小端序格式,不区分大小写。 | 30| 'ucs-2' | 表示utf16小端序格式,不区分大小写。 | 31| 'base64' | 表示base64格式,不区分大小写。 | 32| 'base64url' | 表示base64格式,不区分大小写。 | 33| 'latin1' | 表示ascii格式,不区分大小写。 | 34| 'binary' | 表示二进制格式,不区分大小写。 | 35| 'hex' | 表示十六进制格式,不区分大小写。 | 36 37## buffer.alloc 38 39alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer 40 41创建一定字节长度的Buffer对象,并初始化。 42 43**系统能力:** SystemCapability.Utils.Lang 44 45**参数:** 46 47| 参数名 | 类型 | 必填 | 说明 | 48| -------- | -------- | -------- | -------- | 49| size | number | 是 | 指定的Buffer对象长度,单位:字节。 | 50| fill | string \| Buffer \| number | 否 | 填充至新缓存区的值,默认值: 0。 | 51| encoding | [BufferEncoding](#bufferencoding) | 否 | 编码格式(当`fill`为string时,才有意义)。 默认值: 'utf-8'。 | 52 53**返回值:** 54 55| 类型 | 说明 | 56| -------- | -------- | 57| Buffer | 返回一个Buffer对象。 | 58 59**示例:** 60 61```ts 62import buffer from '@ohos.buffer'; 63 64let buf1 = buffer.alloc(5); 65let buf2 = buffer.alloc(5, 'a'); 66let buf3 = buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); 67``` 68 69## buffer.allocUninitializedFromPool 70 71allocUninitializedFromPool(size: number): Buffer 72 73创建指定大小未被初始化的Buffer对象。内存从缓冲池分配。 74创建的Buffer的内容未知,需要使用[fill](#fill)函数来初始化Buffer对象。 75 76**系统能力:** SystemCapability.Utils.Lang 77 78**参数:** 79 80| 参数名 | 类型 | 必填 | 说明 | 81| -------- | -------- | -------- | -------- | 82| size | number | 是 | 指定的Buffer对象长度,单位:字节。 | 83 84**返回值:** 85 86| 类型 | 说明 | 87| -------- | -------- | 88| Buffer | 未初始化的Buffer实例。 | 89 90**示例:** 91 92```ts 93import buffer from '@ohos.buffer'; 94 95let buf = buffer.allocUninitializedFromPool(10); 96buf.fill(0); 97``` 98 99## buffer.allocUninitialized 100 101allocUninitialized(size: number): Buffer 102 103创建指定大小未被初始化的Buffer实例。内存不从缓冲池分配。 104创建的Buffer的内容未知,需要使用[fill](#fill)函数来初始化Buffer对象。 105 106**系统能力:** SystemCapability.Utils.Lang 107 108**参数:** 109 110| 参数名 | 类型 | 必填 | 说明 | 111| -------- | -------- | -------- | -------- | 112| size | number | 是 |指定的Buffer对象长度,单位:字节。 | 113 114**返回值:** 115 116| 类型 | 说明 | 117| -------- | -------- | 118| Buffer | 未初始化的Buffer实例。 | 119 120**示例:** 121 122```ts 123import buffer from '@ohos.buffer'; 124 125let buf = buffer.allocUninitialized(10); 126buf.fill(0); 127``` 128 129## buffer.byteLength 130 131byteLength(string: string | Buffer | TypedArray | DataView | ArrayBuffer | SharedArrayBuffer, encoding?: BufferEncoding): number 132 133根据不同的编码方法,返回指定字符串的字节数。 134 135**系统能力:** SystemCapability.Utils.Lang 136 137**参数:** 138 139| 参数名 | 类型 | 必填 | 说明 | 140| -------- | -------- | -------- | -------- | 141| string | string \| Buffer \| TypedArray \| DataView \| ArrayBuffer \| SharedArrayBuffer | 是 | 指定字符串。 | 142| encoding | [BufferEncoding](#bufferencoding) | 否 | 编码格式。 默认值: 'utf-8'。 | 143 144**返回值:** 145 146| 类型 | 说明 | 147| -------- | -------- | 148| number | 返回指定字符串的字节数。 | 149 150**示例:** 151 152```ts 153import buffer from '@ohos.buffer'; 154 155let str = '\u00bd + \u00bc = \u00be'; 156console.log(`${str}: ${str.length} characters, ${buffer.byteLength(str, 'utf-8')} bytes`); 157// 打印: ½ + ¼ = ¾: 9 characters, 12 bytes 158``` 159 160## buffer.compare 161 162compare(buf1: Buffer | Uint8Array, buf2: Buffer | Uint8Array): -1 | 0 | 1 163 164返回两个数组的比较结果,通常用于对Buffer对象数组进行排序。 165 166 167**系统能力:** SystemCapability.Utils.Lang 168 169**参数:** 170 171| 参数名 | 类型 | 必填 | 说明 | 172| -------- | -------- | -------- | -------- | 173| buf1 | Buffer \| Uint8Array | 是 | 待比较数组。 | 174| buf2 | Buffer \| Uint8Array | 是 | 待比较数组。 | 175 176**返回值:** 177 178| 类型 | 说明 | 179| -------- | -------- | 180| -1 \| 0 \| 1 | 如果buf1与buf2相同,则返回0。<br/>如果排序时buf1位于buf2之后,则返回1。<br/>如果排序时buf1位于buf2之前,则返回-1。 | 181 182**示例:** 183 184```ts 185import buffer from '@ohos.buffer'; 186 187let buf1 = buffer.from('1234'); 188let buf2 = buffer.from('0123'); 189let res = buf1.compare(buf2); 190 191console.log(Number(res).toString()); // 打印 1 192``` 193 194## buffer.concat 195 196concat(list: Buffer[] | Uint8Array[], totalLength?: number): Buffer 197 198将数组中的内容复制指定字节长度到新的Buffer对象中并返回。 199 200**系统能力:** SystemCapability.Utils.Lang 201 202**参数:** 203 204| 参数名 | 类型 | 必填 | 说明 | 205| -------- | -------- | -------- | -------- | 206| list | Buffer[] \| Uint8Array[] | 是 | 实例数组。 | 207| totalLength | number | 否 | 需要复制的总字节长度。 | 208 209**返回值:** 210 211| 类型 | 说明 | 212| -------- | -------- | 213| Buffer | 返回新的Buffer对象。 | 214 215**错误码:** 216 217以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 218 219| 错误码ID | 错误信息 | 220| -------- | -------- | 221| 10200001 | The value of "totalLength" is out of range. | 222 223**示例:** 224 225```ts 226import buffer from '@ohos.buffer'; 227 228let buf1 = buffer.from("1234"); 229let buf2 = buffer.from("abcd"); 230let buf = buffer.concat([buf1, buf2]); 231console.log(buf.toString('hex')); // 3132333461626364 232``` 233 234## buffer.from 235 236from(array: number[]): Buffer; 237 238根据指定数组创建新的Buffer对象。 239 240**系统能力:** SystemCapability.Utils.Lang 241 242**参数:** 243 244| 参数名 | 类型 | 必填 | 说明 | 245| -------- | -------- | -------- | -------- | 246| array | number[] | 是 | 指定数组。 | 247 248**返回值:** 249 250| 类型 | 说明 | 251| -------- | -------- | 252| Buffer | 新的Buffer对象。 | 253 254**示例:** 255 256```ts 257import buffer from '@ohos.buffer'; 258 259let buf = buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]); 260console.log(buf.toString('hex')); // 627566666572 261``` 262 263## buffer.from 264 265from(arrayBuffer: ArrayBuffer | SharedArrayBuffer, byteOffset?: number, length?: number): Buffer 266 267创建指定长度的与`arrayBuffer`共享内存的Buffer对象。 268 269**系统能力:** SystemCapability.Utils.Lang 270 271**参数:** 272 273| 参数名 | 类型 | 必填 | 说明 | 274| -------- | -------- | -------- | -------- | 275| arrayBuffer | ArrayBuffer \| SharedArrayBuffer | 是 | 实例对象。 | 276| byteOffset | number | 否 | 字节偏移量,默认值: 0。 | 277| length | number | 否 | 字节长度, 默认值: (arrayBuffer.byteLength - byteOffset)。 | 278 279**返回值:** 280 281| 类型 | 说明 | 282| -------- | -------- | 283| Buffer | 返回一个共享内存的Buffer对象。 | 284 285**错误码:** 286 287以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 288 289| 错误码ID | 错误信息 | 290| -------- | -------- | 291| 10200001 | The value of "[byteOffset/length]" is out of range. | 292 293**示例:** 294 295```ts 296import buffer from '@ohos.buffer'; 297 298let ab = new ArrayBuffer(10); 299let buf = buffer.from(ab, 0, 2); 300``` 301 302## buffer.from 303 304from(buffer: Buffer | Uint8Array): Buffer 305 306创建并复制`buffer`数据到新的Buffer对象并返回。 307 308**系统能力:** SystemCapability.Utils.Lang 309 310**参数:** 311 312| 参数名 | 类型 | 必填 | 说明 | 313| -------- | -------- | -------- | -------- | 314| buffer | Buffer \| Uint8Array | 是 | 对象数据。 | 315 316**返回值:** 317 318| 类型 | 说明 | 319| -------- | -------- | 320| Buffer | 新的Buffer对象。 | 321 322**示例:** 323 324```ts 325import buffer from '@ohos.buffer'; 326 327let buf1 = buffer.from('buffer'); 328let buf2 = buffer.from(buf1); 329``` 330 331## buffer.from 332 333from(object: Object, offsetOrEncoding: number | string, length: number): Buffer 334 335根据指定的`object`类型数据,创建新的Buffer对象。 336 337**系统能力:** SystemCapability.Utils.Lang 338 339**参数:** 340 341| 参数名 | 类型 | 必填 | 说明 | 342| -------- | -------- | -------- | -------- | 343| object | Object | 是 | 支持Symbol.toPrimitive或valueOf()的对象。 | 344| offsetOrEncoding | number \| string | 是 | 字节偏移量或编码格式。 | 345| length | number | 是 | 字节长度。 | 346 347**返回值:** 348 349| 类型 | 说明 | 350| -------- | -------- | 351| Buffer | 返回新的Buffer对象。 | 352 353**示例:** 354 355```ts 356import buffer from '@ohos.buffer'; 357 358let buf = buffer.from(new String('this is a test'), 'utf8', 14); 359``` 360 361## buffer.from 362 363from(string: String, encoding?: BufferEncoding): Buffer 364 365根据指定编码格式的字符串,创建新的Buffer对象。 366 367**系统能力:** SystemCapability.Utils.Lang 368 369**参数:** 370 371| 参数名 | 类型 | 必填 | 说明 | 372| -------- | -------- | -------- | -------- | 373| string | String | 是 | 字符串 | 374| encoding | [BufferEncoding](#bufferencoding) | 否 | 编码格式。 默认值: 'utf-8'。 | 375 376**返回值:** 377 378| 类型 | 说明 | 379| -------- | -------- | 380| Buffer | 返回新的Buffer对象。 | 381 382**示例:** 383 384```ts 385import buffer from '@ohos.buffer'; 386 387let buf1 = buffer.from('this is a test'); 388let buf2 = buffer.from('7468697320697320612074c3a97374', 'hex'); 389 390console.log(buf1.toString()); // 打印: this is a test 391console.log(buf2.toString()); // 打印: this is a test 392``` 393 394 395## buffer.isBuffer 396 397isBuffer(obj: Object): boolean 398 399判断`obj`是否为Buffer。 400 401**系统能力:** SystemCapability.Utils.Lang 402 403**参数:** 404 405| 参数名 | 类型 | 必填 | 说明 | 406| -------- | -------- | -------- | -------- | 407| obj | Object | 是 | 判断对象 | 408 409**返回值:** 410 411| 类型 | 说明 | 412| -------- | -------- | 413| boolean | 如果obj是Buffer,则返回true,否则返回false。 | 414 415**示例:** 416 417```ts 418import buffer from '@ohos.buffer'; 419 420let result = buffer.isBuffer(buffer.alloc(10)); // true 421let result1 = buffer.isBuffer(buffer.from('foo')); // true 422let result2 = buffer.isBuffer('a string'); // false 423let result3 = buffer.isBuffer([]); // false 424let result4 = buffer.isBuffer(new Uint8Array(1024)); // false 425``` 426 427## buffer.isEncoding 428 429isEncoding(encoding: string): boolean 430 431判断`encoding`是否为支持的编码格式。 432 433**系统能力:** SystemCapability.Utils.Lang 434 435**参数:** 436 437| 参数名 | 类型 | 必填 | 说明 | 438| -------- | -------- | -------- | -------- | 439| encoding | string | 是 | 编码格式。 | 440 441**返回值:** 442 443| 类型 | 说明 | 444| -------- | -------- | 445| boolean | 是支持的编码格式返回true,反之则返回false。 | 446 447**示例:** 448 449```ts 450import buffer from '@ohos.buffer'; 451 452console.log(buffer.isEncoding('utf-8').toString()); // 打印: true 453console.log(buffer.isEncoding('hex').toString()); // 打印: true 454console.log(buffer.isEncoding('utf/8').toString()); // 打印: false 455console.log(buffer.isEncoding('').toString()); // 打印: false 456``` 457 458## buffer.transcode 459 460transcode(source: Buffer | Uint8Array, fromEnc: string, toEnc: string): Buffer 461 462将给定的Buffer或Uint8Array对象从一种字符编码重新编码为另一种。 463 464**系统能力:** SystemCapability.Utils.Lang 465 466**参数:** 467 468| 参数名 | 类型 | 必填 | 说明 | 469| -------- | -------- | -------- | -------- | 470| source | Buffer \| Uint8Array | 是 | 实例对象。 | 471| fromEnc | string | 是 | 当前编码。 | 472| toEnc | string | 是 | 目标编码。 | 473 474**返回值:** 475 476| 类型 | 说明 | 477| -------- | -------- | 478| Buffer | 根据当前编码转换成目标编码,并返回一个新的buffer实例。 | 479 480**示例:** 481 482```ts 483import buffer from '@ohos.buffer'; 484 485let buf = buffer.alloc(50); 486let newBuf = buffer.transcode(buffer.from('€'), 'utf-8', 'ascii'); 487console.log(newBuf.toString('ascii')); 488``` 489 490## Buffer 491 492### 属性 493 494**系统能力:** SystemCapability.Utils.Lang 495 496| 名称 | 类型 | 可读 | 可写 | 说明 | 497| -------- | -------- | -------- | -------- | -------- | 498| length | number | 是 | 否 | Buffer对象的字节长度。 | 499| buffer | ArrayBuffer | 是 | 否 | ArrayBuffer对象。 | 500| byteOffset | number | 是 | 否 | 当前Buffer所在内存池的偏移量。 | 501 502**错误码:** 503 504以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 505 506| 错误码ID | 错误信息 | 507| -------- | -------- | 508| 10200013 | Cannot set property ${propertyName} of Buffer which has only a getter. | 509 510**示例:** 511 512```ts 513import buffer from '@ohos.buffer'; 514 515let buf = buffer.from("1236"); 516console.log(JSON.stringify(buf.length)); 517let arrayBuffer = buf.buffer; 518console.log(JSON.stringify(new Uint8Array(arrayBuffer))); 519console.log(JSON.stringify(buf.byteOffset)); 520``` 521 522### compare 523 524compare(target: Buffer | Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): -1 | 0 | 1 525 526当前Buffer对象与目标Buffer对象进行比较,并返回Buffer在排序中的顺序结果。 527 528**系统能力:** SystemCapability.Utils.Lang 529 530**参数:** 531 532| 参数名 | 类型 | 必填 | 说明 | 533| -------- | -------- | -------- | -------- | 534| target | Buffer \| Uint8Array | 是 | 要比较的实例对象。 | 535| targetStart | number | 否 | `target`实例中开始的偏移量。 默认值: 0。 | 536| targetEnd | number | 否 | `target`实例中结束的偏移量(不包含结束位置)。 默认值: 目标对象的字节长度。 | 537| sourceStart | number | 否 | `this`实例中开始的偏移量。 默认值: 0。 | 538| sourceEnd | number | 否 | `this`实例中结束的偏移量(不包含结束位置)。 默认值: 当前对象的字节长度。 | 539 540**返回值:** 541 542| 类型 | 说明 | 543| -------- | -------- | 544| number | 返回比较结果。-1:当前排列在目标前,0:当前与目标相同,1:当前排列在目标后。 | 545 546**错误码:** 547 548以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 549 550| 错误码ID | 错误信息 | 551| -------- | -------- | 552| 10200001 | The value of "[targetStart/targetEnd/sourceStart/sourceEnd]" is out of range. | 553 554**示例:** 555 556```ts 557import buffer from '@ohos.buffer'; 558 559let buf1 = buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]); 560let buf2 = buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]); 561 562console.log(buf1.compare(buf2, 5, 9, 0, 4).toString()); // 打印: 0 563console.log(buf1.compare(buf2, 0, 6, 4).toString()); // 打印: -1 564console.log(buf1.compare(buf2, 5, 6, 5).toString()); // 打印: 1 565``` 566 567### copy 568 569copy(target: Buffer| Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number 570 571将`this`实例中指定位置的数据复制到`target`的指定位置上,并返回复制的字节总长度。 572 573**系统能力:** SystemCapability.Utils.Lang 574 575**参数:** 576 577| 参数名 | 类型 | 必填 | 说明 | 578| -------- | -------- | -------- | -------- | 579| target | Buffer \| Uint8Array | 是 | 要复制到的Buffer或Uint8Array实例。 | 580| targetStart | number | 否 | `target`实例中开始写入的偏移量。 默认值: 0。 | 581| sourceStart | number | 否 | `this`实例中开始复制的偏移量。 默认值: 0。 | 582| sourceEnd | number | 否 | `this`实例中结束复制的偏移量(不包含结束位置)。 默认值: 当前对象的字节长度。 | 583 584**返回值:** 585 586| 类型 | 说明 | 587| -------- | -------- | 588| number | 复制的字节总长度。 | 589 590**错误码:** 591 592以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 593 594| 错误码ID | 错误信息 | 595| -------- | -------- | 596| 10200001 | The value of "[targetStart/sourceStart/sourceEnd]" is out of range. | 597 598**示例:** 599 600```ts 601import buffer from '@ohos.buffer'; 602 603let buf1 = buffer.allocUninitializedFromPool(26); 604let buf2 = buffer.allocUninitializedFromPool(26).fill('!'); 605 606for (let i = 0; i < 26; i++) { 607 buf1[i] = i + 97; 608} 609 610buf1.copy(buf2, 8, 16, 20); 611console.log(buf2.toString('ascii', 0, 25)); 612// 打印: !!!!!!!!qrst!!!!!!!!!!!!! 613``` 614 615### entries 616 617entries(): IterableIterator<[number, number]> 618 619返回一个包含key和value的迭代器。 620 621**系统能力:** SystemCapability.Utils.Lang 622 623**返回值:** 624 625| 类型 | 说明 | 626| -------- | -------- | 627| number | 表示迭代器的key值。 | 628| number | 表示迭代器的value值。 | 629 630**示例:** 631 632```ts 633import buffer from '@ohos.buffer'; 634 635let buf = buffer.from('buffer'); 636for (let pair of buf.entries()) { 637 console.log(pair.toString()); 638} 639``` 640 641### equals 642 643equals(otherBuffer: Uint8Array | Buffer): boolean 644 645比较`this`实例和otherBuffer实例是否相等。 646 647**系统能力:** SystemCapability.Utils.Lang 648 649**参数:** 650 651| 参数名 | 类型 | 必填 | 说明 | 652| -------- | -------- | -------- | -------- | 653| otherBuffer | Uint8Array \| Buffer | 是 | 比较的目标对象。 | 654 655**返回值:** 656 657| 类型 | 说明 | 658| -------- | -------- | 659| boolean | 相等则返回true,否则返回false。 | 660 661**示例:** 662 663```ts 664import buffer from '@ohos.buffer'; 665 666let buf1 = buffer.from('ABC'); 667let buf2 = buffer.from('414243', 'hex'); 668let buf3 = buffer.from('ABCD'); 669 670console.log(buf1.equals(buf2).toString()); // 打印: true 671console.log(buf1.equals(buf3).toString()); // 打印: false 672``` 673 674### fill 675 676fill(value: string | Buffer | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): Buffer 677 678用`value`填充当前对象指定位置的数据,默认为循环填充,并返回填充后的Buffer对象。 679 680**系统能力:** SystemCapability.Utils.Lang 681 682**参数:** 683 684| 参数名 | 类型 | 必填 | 说明 | 685| -------- | -------- | -------- | -------- | 686| value | string \| Buffer \| Uint8Array \| number | 是 | 用于填充的值。 | 687| offset | number | 否 | 起始偏移量。 默认值: 0。 | 688| end | number | 否 | 结束偏移量(不包含结束位置)。 默认值: 当前对象的字节长度。 | 689| encoding | [BufferEncoding](#bufferencoding) | 否 | 字符编码格式(`value`为string才有意义)。 默认值: 'utf-8'。 | 690 691**返回值:** 692 693| 类型 | 说明 | 694| -------- | -------- | 695| Buffer | 返回一个填充后的Buffer对象。 | 696 697**错误码:** 698 699以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 700 701| 错误码ID | 错误信息 | 702| -------- | -------- | 703| 10200001 | The value of "[offset/end]" is out of range. | 704 705**示例:** 706 707```ts 708import buffer from '@ohos.buffer'; 709 710let b = buffer.allocUninitializedFromPool(50).fill('h'); 711console.log(b.toString()); 712``` 713 714 715### includes 716 717includes(value: string | number | Buffer | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): boolean 718 719检查Buffer对象是否包含`value`值。 720 721**系统能力:** SystemCapability.Utils.Lang 722 723**参数:** 724 725| 参数名 | 类型 | 必填 | 说明 | 726| -------- | -------- | -------- | -------- | 727| value | string \| number \| Buffer \| Uint8Array | 是 | 要搜索的内容。 | 728| byteOffset | number | 否 | 字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。 | 729| encoding | [BufferEncoding](#bufferencoding) | 否 | 字符编码格式。 默认值: 'utf-8'。 | 730 731**返回值:** 732 733| 类型 | 说明 | 734| -------- | -------- | 735| boolean | 存在为true,否则为false。 | 736 737**示例:** 738 739```ts 740import buffer from '@ohos.buffer'; 741 742let buf = buffer.from('this is a buffer'); 743console.log(buf.includes('this').toString()); // 打印: true 744console.log(buf.includes('be').toString()); // 打印: false 745``` 746 747### indexOf 748 749indexOf(value: string | number | Buffer | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number 750 751查找当前对象中第一次出现`value`的索引,如果不包含`value`,则为-1。 752 753**系统能力:** SystemCapability.Utils.Lang 754 755**参数:** 756 757| 参数名 | 类型 | 必填 | 说明 | 758| -------- | -------- | -------- | -------- | 759| value | string \| number \| Buffer \| Uint8Array | 是 | 要查找的内容。 | 760| byteOffset | number | 否 | 字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。 | 761| encoding | [BufferEncoding](#bufferencoding) | 否 | 字符编码格式。 默认值: 'utf-8'。 | 762 763**返回值:** 764 765| 类型 | 说明 | 766| -------- | -------- | 767| number | 第一次出现位置。 | 768 769**示例:** 770 771```ts 772import buffer from '@ohos.buffer'; 773 774let buf = buffer.from('this is a buffer'); 775console.log(buf.indexOf('this').toString()); // 打印: 0 776console.log(buf.indexOf('is').toString()); // 打印: 2 777``` 778 779### keys 780 781keys(): IterableIterator<number> 782 783返回一个包含key值的迭代器。 784 785**系统能力:** SystemCapability.Utils.Lang 786 787**返回值:** 788 789| 类型 | 说明 | 790| -------- | -------- | 791| IterableIterator<number> | 返回一个包含key值的迭代器。 | 792 793**示例:** 794 795```ts 796import buffer from '@ohos.buffer'; 797 798let buf = buffer.from('buffer'); 799for (const key of buf.keys()) { 800 console.log(key.toString()); 801} 802``` 803 804### lastIndexOf 805 806lastIndexOf(value: string | number | Buffer | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number 807 808返回`this`实例中最后一次出现`value`的索引,如果对象不包含,则为-1。 809 810**系统能力:** SystemCapability.Utils.Lang 811 812**参数:** 813 814| 参数名 | 类型 | 必填 | 说明 | 815| -------- | -------- | -------- | -------- | 816| value | string \| number \| Buffer \| Uint8Array | 是 | 要搜索的内容。 | 817| byteOffset | number | 否 | 字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。 | 818| encoding | [BufferEncoding](#bufferencoding) | 否 | 字符编码格式。 默认值: 'utf-8'。 | 819 820**返回值:** 821 822| 类型 | 说明 | 823| -------- | -------- | 824| number | 最后一次出现`value`值的索引。 | 825 826**示例:** 827 828```ts 829import buffer from '@ohos.buffer'; 830 831let buf = buffer.from('this buffer is a buffer'); 832console.log(buf.lastIndexOf('this').toString()); // 打印: 0 833console.log(buf.lastIndexOf('buffer').toString()); // 打印: 17 834``` 835 836 837### readBigInt64BE 838 839readBigInt64BE(offset?: number): bigint 840 841从指定的`offset`处读取有符号的大端序64位整数。 842 843**系统能力:** SystemCapability.Utils.Lang 844 845**参数:** 846 847| 参数名 | 类型 | 必填 | 说明 | 848| -------- | -------- | -------- | -------- | 849| offset | number | 否 | 偏移量。默认值: 0。 | 850 851**返回值:** 852 853| 类型 | 说明 | 854| -------- | -------- | 855| bigint | 读取出的内容。 | 856 857**错误码:** 858 859以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 860 861| 错误码ID | 错误信息 | 862| -------- | -------- | 863| 10200001 | The value of "offset" is out of range. | 864 865**示例:** 866 867```ts 868import buffer from '@ohos.buffer'; 869 870let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 871 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]); 872console.log(buf.readBigInt64BE(0).toString()); 873 874let buf1 = buffer.allocUninitializedFromPool(8); 875let result = buf1.writeBigInt64BE(BigInt(0x0102030405060708), 0); 876``` 877 878### readBigInt64LE 879 880readBigInt64LE(offset?: number): bigint 881 882从指定的`offset`处读取有符号的小端序64位整数。 883 884**系统能力:** SystemCapability.Utils.Lang 885 886**参数:** 887 888| 参数名 | 类型 | 必填 | 说明 | 889| -------- | -------- | -------- | -------- | 890| offset | number | 否 | 偏移量。默认值: 0。 | 891 892**返回值:** 893 894| 类型 | 说明 | 895| -------- | -------- | 896| bigint | 读取出的内容。 | 897 898**错误码:** 899 900以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 901 902| 错误码ID | 错误信息 | 903| -------- | -------- | 904| 10200001 | The value of "offset" is out of range. | 905 906**示例:** 907 908```ts 909import buffer from '@ohos.buffer'; 910 911let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 912 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]); 913console.log(buf.readBigInt64LE(0).toString()); 914 915let buf1 = buffer.allocUninitializedFromPool(8); 916let result = buf1.writeBigInt64BE(BigInt(0x0102030405060708), 0); 917``` 918 919### readBigUInt64BE 920 921readBigUInt64BE(offset?: number): bigint 922 923从指定的`offset`处读取无符号的大端序64位整数。 924 925**系统能力:** SystemCapability.Utils.Lang 926 927**参数:** 928 929| 参数名 | 类型 | 必填 | 说明 | 930| -------- | -------- | -------- | -------- | 931| offset | number | 否 | 偏移量。默认值: 0。 | 932 933**返回值:** 934 935| 类型 | 说明 | 936| -------- | -------- | 937| bigint | 读取出的内容。 | 938 939**错误码:** 940 941以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 942 943| 错误码ID | 错误信息 | 944| -------- | -------- | 945| 10200001 | The value of "offset" is out of range. | 946 947**示例:** 948 949```ts 950import buffer from '@ohos.buffer'; 951 952let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 953 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]); 954console.log(buf.readBigUInt64BE(0).toString()); 955 956let buf1 = buffer.allocUninitializedFromPool(8); 957let result = buf1.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0); 958``` 959 960### readBigUInt64LE 961 962readBigUInt64LE(offset?: number): bigint 963 964从指定的`offset`处读取无符号的小端序64位整数。 965 966**系统能力:** SystemCapability.Utils.Lang 967 968**参数:** 969 970| 参数名 | 类型 | 必填 | 说明 | 971| -------- | -------- | -------- | -------- | 972| offset | number | 否 | 偏移量。默认值: 0。 | 973 974**返回值:** 975 976| 类型 | 说明 | 977| -------- | -------- | 978| bigint | 读取出的内容。 | 979 980**错误码:** 981 982以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 983 984| 错误码ID | 错误信息 | 985| -------- | -------- | 986| 10200001 | The value of "offset" is out of range. | 987 988**示例:** 989 990```ts 991import buffer from '@ohos.buffer'; 992 993let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 994 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]); 995console.log(buf.readBigUInt64LE(0).toString()); 996 997let buf1 = buffer.allocUninitializedFromPool(8); 998let result = buf1.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0); 999``` 1000 1001### readDoubleBE 1002 1003readDoubleBE(offset?: number): number 1004 1005从指定`offset`处读取64位大端序双精度值。 1006 1007**系统能力:** SystemCapability.Utils.Lang 1008 1009**参数:** 1010 1011| 参数名 | 类型 | 必填 | 说明 | 1012| -------- | -------- | -------- | -------- | 1013| offset | number | 否 | 偏移量。默认值: 0。 | 1014 1015**返回值:** 1016 1017| 类型 | 说明 | 1018| -------- | -------- | 1019| number | 读取出的内容。 | 1020 1021**错误码:** 1022 1023以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1024 1025| 错误码ID | 错误信息 | 1026| -------- | -------- | 1027| 10200001 | The value of "offset" is out of range. | 1028 1029**示例:** 1030 1031```ts 1032import buffer from '@ohos.buffer'; 1033 1034let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); 1035console.log(buf.readDoubleBE(0).toString()); 1036 1037let buf1 = buffer.allocUninitializedFromPool(8); 1038let result = buf1.writeDoubleBE(123.456, 0); 1039``` 1040 1041### readDoubleLE 1042 1043readDoubleLE(offset?: number): number 1044 1045从指定`offset`处读取64位小端序双精度值。 1046 1047**系统能力:** SystemCapability.Utils.Lang 1048 1049**参数:** 1050 1051| 参数名 | 类型 | 必填 | 说明 | 1052| -------- | -------- | -------- | -------- | 1053| offset | number | 否 | 偏移量。默认值: 0。 | 1054 1055**返回值:** 1056 1057| 类型 | 说明 | 1058| -------- | -------- | 1059| number | 读取出的内容。 | 1060 1061**错误码:** 1062 1063以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1064 1065| 错误码ID | 错误信息 | 1066| -------- | -------- | 1067| 10200001 | The value of "offset" is out of range. | 1068 1069**示例:** 1070 1071```ts 1072import buffer from '@ohos.buffer'; 1073 1074let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); 1075console.log(buf.readDoubleLE(0).toString()); 1076 1077let buf1 = buffer.allocUninitializedFromPool(8); 1078let result = buf1.writeDoubleLE(123.456, 0); 1079``` 1080 1081### readFloatBE 1082 1083readFloatBE(offset?: number): number 1084 1085从指定`offset`处读取32位大端序浮点数。 1086 1087**系统能力:** SystemCapability.Utils.Lang 1088 1089**参数:** 1090 1091| 参数名 | 类型 | 必填 | 说明 | 1092| -------- | -------- | -------- | -------- | 1093| offset | number | 否 | 偏移量。默认值: 0。 | 1094 1095**返回值:** 1096 1097| 类型 | 说明 | 1098| -------- | -------- | 1099| number | 读取出的内容。 | 1100 1101**错误码:** 1102 1103以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1104 1105| 错误码ID | 错误信息 | 1106| -------- | -------- | 1107| 10200001 | The value of "offset" is out of range. | 1108 1109**示例:** 1110 1111```ts 1112import buffer from '@ohos.buffer'; 1113 1114let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); 1115console.log(buf.readFloatBE(0).toString()); 1116 1117let buf1 = buffer.allocUninitializedFromPool(4); 1118let result = buf1.writeFloatBE(0xcabcbcbc, 0); 1119``` 1120 1121### readFloatLE 1122 1123readFloatLE(offset?: number): number 1124 1125从指定`offset`处读取32位小端序浮点数。 1126 1127**系统能力:** SystemCapability.Utils.Lang 1128 1129**参数:** 1130 1131| 参数名 | 类型 | 必填 | 说明 | 1132| -------- | -------- | -------- | -------- | 1133| offset | number | 否 | 偏移量。默认值: 0。 | 1134 1135**返回值:** 1136 1137| 类型 | 说明 | 1138| -------- | -------- | 1139| number | 读取出的内容。 | 1140 1141**错误码:** 1142 1143以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1144 1145| 错误码ID | 错误信息 | 1146| -------- | -------- | 1147| 10200001 | The value of "offset" is out of range. | 1148 1149**示例:** 1150 1151```ts 1152import buffer from '@ohos.buffer'; 1153 1154let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); 1155console.log(buf.readFloatLE(0).toString()); 1156 1157let buf1 = buffer.allocUninitializedFromPool(4); 1158let result = buf1.writeFloatLE(0xcabcbcbc, 0); 1159``` 1160 1161### readInt8 1162 1163readInt8(offset?: number): number 1164 1165从指定的`offset`处读取有符号的8位整数。 1166 1167**系统能力:** SystemCapability.Utils.Lang 1168 1169**参数:** 1170 1171| 参数名 | 类型 | 必填 | 说明 | 1172| -------- | -------- | -------- | -------- | 1173| offset | number | 否 | 偏移量。默认值: 0。 | 1174 1175**返回值:** 1176 1177| 类型 | 说明 | 1178| -------- | -------- | 1179| number | 读取出的内容。 | 1180 1181**错误码:** 1182 1183以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1184 1185| 错误码ID | 错误信息 | 1186| -------- | -------- | 1187| 10200001 | The value of "offset" is out of range. | 1188 1189**示例:** 1190 1191```ts 1192import buffer from '@ohos.buffer'; 1193 1194let buf = buffer.from([-1, 5]); 1195console.log(buf.readInt8(0).toString()); // 打印: -1 1196console.log(buf.readInt8(1).toString()); // 打印: 5 1197 1198let buf1 = buffer.allocUninitializedFromPool(2); 1199let result = buf1.writeInt8(0x12); 1200``` 1201 1202### readInt16BE 1203 1204readInt16BE(offset?: number): number 1205 1206从指定的`offset`处读取有符号的大端序16位整数。 1207 1208**系统能力:** SystemCapability.Utils.Lang 1209 1210**参数:** 1211 1212| 参数名 | 类型 | 必填 | 说明 | 1213| -------- | -------- | -------- | -------- | 1214| offset | number | 否 | 偏移量。默认值: 0。 | 1215 1216**返回值:** 1217 1218| 类型 | 说明 | 1219| -------- | -------- | 1220| number | 读取出的内容。 | 1221 1222**错误码:** 1223 1224以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1225 1226| 错误码ID | 错误信息 | 1227| -------- | -------- | 1228| 10200001 | The value of "offset" is out of range. | 1229 1230**示例:** 1231 1232```ts 1233import buffer from '@ohos.buffer'; 1234 1235let buf = buffer.from([0, 5]); 1236console.log(buf.readInt16BE(0).toString()); // 打印: 5 1237 1238let buf1 = buffer.alloc(2); 1239let result = buf1.writeInt16BE(0x1234, 0); 1240``` 1241 1242### readInt16LE 1243 1244readInt16LE(offset?: number): number 1245 1246从指定的`offset`处读取有符号的小端序16位整数。 1247 1248**系统能力:** SystemCapability.Utils.Lang 1249 1250**参数:** 1251 1252| 参数名 | 类型 | 必填 | 说明 | 1253| -------- | -------- | -------- | -------- | 1254| offset | number | 否 | 偏移量。默认值: 0。 | 1255 1256**返回值:** 1257 1258| 类型 | 说明 | 1259| -------- | -------- | 1260| number | 读取出的内容。 | 1261 1262**错误码:** 1263 1264以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1265 1266| 错误码ID | 错误信息 | 1267| -------- | -------- | 1268| 10200001 | The value of "offset" is out of range. | 1269 1270**示例:** 1271 1272```ts 1273import buffer from '@ohos.buffer'; 1274 1275let buf = buffer.from([0, 5]); 1276console.log(buf.readInt16LE(0).toString()); // 打印: 1280 1277 1278let buf1 = buffer.alloc(2); 1279let result = buf1.writeInt16BE(0x1234, 0); 1280``` 1281 1282### readInt32BE 1283 1284readInt32BE(offset?: number): number 1285 1286从指定的`offset`处读取有符号的大端序32位整数。 1287 1288**系统能力:** SystemCapability.Utils.Lang 1289 1290**参数:** 1291 1292| 参数名 | 类型 | 必填 | 说明 | 1293| -------- | -------- | -------- | -------- | 1294| offset | number | 否 | 偏移量。默认值: 0。 | 1295 1296**返回值:** 1297 1298| 类型 | 说明 | 1299| -------- | -------- | 1300| number | 读取出的内容。 | 1301 1302**错误码:** 1303 1304以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1305 1306| 错误码ID | 错误信息 | 1307| -------- | -------- | 1308| 10200001 | The value of "offset" is out of range. | 1309 1310**示例:** 1311 1312```ts 1313import buffer from '@ohos.buffer'; 1314 1315let buf = buffer.from([0, 0, 0, 5]); 1316console.log(buf.readInt32BE(0).toString()); // 打印: 5 1317 1318let buf1 = buffer.alloc(4); 1319let result = buf1.writeInt32BE(0x12345678, 0); 1320``` 1321 1322### readInt32LE 1323 1324readInt32LE(offset?: number): number 1325 1326从指定的`offset`处读取有符号的小端序32位整数。 1327 1328**系统能力:** SystemCapability.Utils.Lang 1329 1330**参数:** 1331 1332| 参数名 | 类型 | 必填 | 说明 | 1333| -------- | -------- | -------- | -------- | 1334| offset | number | 否 | 偏移量。默认值: 0。 | 1335 1336**返回值:** 1337 1338| 类型 | 说明 | 1339| -------- | -------- | 1340| number | 读取出的内容。 | 1341 1342**错误码:** 1343 1344以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1345 1346| 错误码ID | 错误信息 | 1347| -------- | -------- | 1348| 10200001 | The value of "offset" is out of range. | 1349 1350**示例:** 1351 1352```ts 1353import buffer from '@ohos.buffer'; 1354 1355let buf = buffer.from([0, 0, 0, 5]); 1356console.log(buf.readInt32LE(0).toString()); // 打印: 83886080 1357 1358let buf1 = buffer.alloc(4); 1359let result = buf1.writeInt32BE(0x12345678, 0); 1360``` 1361 1362### readIntBE 1363 1364readIntBE(offset: number, byteLength: number): number 1365 1366从指定的`offset`处的buf读取byteLength个字节,并将结果解释为支持最高48位精度的大端序、二进制补码有符号值。 1367 1368**系统能力:** SystemCapability.Utils.Lang 1369 1370**参数:** 1371 1372| 参数名 | 类型 | 必填 | 说明 | 1373| -------- | -------- | -------- | -------- | 1374| offset | number | 是 | 偏移量。 默认值: 0。 | 1375| byteLength | number | 是 | 读取的字节数。 | 1376 1377 1378**返回值:** 1379 1380| 类型 | 说明 | 1381| -------- | -------- | 1382| number | 读取的内容。 | 1383 1384**错误码:** 1385 1386以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1387 1388| 错误码ID | 错误信息 | 1389| -------- | -------- | 1390| 10200001 | The value of "[offset/byteLength]" is out of range. | 1391 1392**示例:** 1393 1394```ts 1395import buffer from '@ohos.buffer'; 1396 1397let buf = buffer.from("ab"); 1398let num = buf.readIntBE(0, 1); 1399console.log(num.toString()); // 97 1400 1401let buf1 = buffer.allocUninitializedFromPool(6); 1402let result = buf1.writeIntBE(0x123456789011, 0, 6); 1403``` 1404 1405 1406### readIntLE 1407 1408readIntLE(offset: number, byteLength: number): number 1409 1410从指定的`offset`处的buf读取`byteLength`个字节,并将结果解释为支持最高48位精度的小端序、二进制补码有符号值。 1411 1412**系统能力:** SystemCapability.Utils.Lang 1413 1414**参数:** 1415 1416| 参数名 | 类型 | 必填 | 说明 | 1417| -------- | -------- | -------- | -------- | 1418| offset | number | 是 | 偏移量。 默认值: 0。 | 1419| byteLength | number | 是 | 读取的字节数。 | 1420 1421 1422**返回值:** 1423 1424| 类型 | 说明 | 1425| -------- | -------- | 1426| number | 读取出的内容。 | 1427 1428**错误码:** 1429 1430以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1431 1432| 错误码ID | 错误信息 | 1433| -------- | -------- | 1434| 10200001 | The value of "[offset/byteLength]" is out of range. | 1435 1436**示例:** 1437 1438```ts 1439import buffer from '@ohos.buffer'; 1440 1441let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); 1442console.log(buf.readIntLE(0, 6).toString(16)); 1443 1444let buf1 = buffer.allocUninitializedFromPool(6); 1445let result = buf1.writeIntLE(0x123456789011, 0, 6); 1446``` 1447 1448### readUInt8 1449 1450readUInt8(offset?: number): number 1451 1452从`offset`处读取8位无符号整型数。 1453 1454**系统能力:** SystemCapability.Utils.Lang 1455 1456**参数:** 1457 1458| 参数名 | 类型 | 必填 | 说明 | 1459| -------- | -------- | -------- | -------- | 1460| offset | number | 否 | 偏移量。 默认值: 0。 | 1461 1462 1463**返回值:** 1464 1465| 类型 | 说明 | 1466| -------- | -------- | 1467| number | 读取出的内容。 | 1468 1469**错误码:** 1470 1471以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1472 1473| 错误码ID | 错误信息 | 1474| -------- | -------- | 1475| 10200001 | The value of "offset" is out of range. | 1476 1477**示例:** 1478 1479```ts 1480import buffer from '@ohos.buffer'; 1481 1482let buf = buffer.from([1, -2]); 1483console.log(buf.readUInt8(0).toString()); 1484console.log(buf.readUInt8(1).toString()); 1485 1486let buf1 = buffer.allocUninitializedFromPool(4); 1487let result = buf1.writeUInt8(0x42); 1488``` 1489 1490### readUInt16BE 1491 1492readUInt16BE(offset?: number): number 1493 1494从指定的`offset`处的buf读取无符号的大端序16位整数。 1495 1496**系统能力:** SystemCapability.Utils.Lang 1497 1498**参数:** 1499 1500| 参数名 | 类型 | 必填 | 说明 | 1501| -------- | -------- | -------- | -------- | 1502| offset | number | 否 | 偏移量。 默认值: 0。 | 1503 1504 1505**返回值:** 1506 1507| 类型 | 说明 | 1508| -------- | -------- | 1509| number | 读取出的内容。 | 1510 1511**错误码:** 1512 1513以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1514 1515| 错误码ID | 错误信息 | 1516| -------- | -------- | 1517| 10200001 | The value of "offset" is out of range. | 1518 1519**示例:** 1520 1521```ts 1522import buffer from '@ohos.buffer'; 1523 1524let buf = buffer.from([0x12, 0x34, 0x56]); 1525console.log(buf.readUInt16BE(0).toString(16)); 1526console.log(buf.readUInt16BE(1).toString(16)); 1527 1528let buf1 = buffer.allocUninitializedFromPool(4); 1529let result = buf1.writeUInt16BE(0x1234, 0); 1530``` 1531 1532### readUInt16LE 1533 1534readUInt16LE(offset?: number): number 1535 1536从指定的`offset`处的buf读取无符号的小端序16位整数。 1537 1538**系统能力:** SystemCapability.Utils.Lang 1539 1540**参数:** 1541 1542| 参数名 | 类型 | 必填 | 说明 | 1543| -------- | -------- | -------- | -------- | 1544| offset | number | 否 | 偏移量。 默认值: 0。 | 1545 1546 1547**返回值:** 1548 1549| 类型 | 说明 | 1550| -------- | -------- | 1551| number | 读取出的内容。 | 1552 1553**错误码:** 1554 1555以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1556 1557| 错误码ID | 错误信息 | 1558| -------- | -------- | 1559| 10200001 | The value of "offset" is out of range. | 1560 1561**示例:** 1562 1563```ts 1564import buffer from '@ohos.buffer'; 1565 1566let buf = buffer.from([0x12, 0x34, 0x56]); 1567console.log(buf.readUInt16LE(0).toString(16)); 1568console.log(buf.readUInt16LE(1).toString(16)); 1569 1570let buf1 = buffer.allocUninitializedFromPool(4); 1571let result = buf1.writeUInt16LE(0x1234, 0); 1572``` 1573 1574### readUInt32BE 1575 1576readUInt32BE(offset?: number): number 1577 1578从指定的`offset`处的buf读取无符号的大端序32位整数。 1579 1580**系统能力:** SystemCapability.Utils.Lang 1581 1582**参数:** 1583 1584| 参数名 | 类型 | 必填 | 说明 | 1585| -------- | -------- | -------- | -------- | 1586| offset | number | 否 | 偏移量。 默认值: 0。 | 1587 1588 1589**返回值:** 1590 1591| 类型 | 说明 | 1592| -------- | -------- | 1593| number | 读取出的内容。 | 1594 1595**错误码:** 1596 1597以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1598 1599| 错误码ID | 错误信息 | 1600| -------- | -------- | 1601| 10200001 | The value of "offset" is out of range. | 1602 1603**示例:** 1604 1605```ts 1606import buffer from '@ohos.buffer'; 1607 1608let buf = buffer.from([0x12, 0x34, 0x56, 0x78]); 1609console.log(buf.readUInt32BE(0).toString(16)); 1610 1611let buf1 = buffer.allocUninitializedFromPool(4); 1612let result = buf1.writeUInt32BE(0x12345678, 0); 1613``` 1614 1615### readUInt32LE 1616 1617readUInt32LE(offset?: number): number 1618 1619从指定的`offset`处的buf读取无符号的小端序32位整数。 1620 1621**系统能力:** SystemCapability.Utils.Lang 1622 1623**参数:** 1624 1625| 参数名 | 类型 | 必填 | 说明 | 1626| -------- | -------- | -------- | -------- | 1627| offset | number | 否 | 偏移量。 默认值: 0。 | 1628 1629 1630**返回值:** 1631 1632| 类型 | 说明 | 1633| -------- | -------- | 1634| number | 读取出的内容。 | 1635 1636**错误码:** 1637 1638以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1639 1640| 错误码ID | 错误信息 | 1641| -------- | -------- | 1642| 10200001 | The value of "offset" is out of range. | 1643 1644**示例:** 1645 1646```ts 1647import buffer from '@ohos.buffer'; 1648 1649let buf = buffer.from([0x12, 0x34, 0x56, 0x78]); 1650console.log(buf.readUInt32LE(0).toString(16)); 1651 1652let buf1 = buffer.allocUninitializedFromPool(4); 1653let result = buf1.writeUInt32LE(0x12345678, 0); 1654``` 1655 1656### readUIntBE 1657 1658readUIntBE(offset: number, byteLength: number): number 1659 1660从指定的`offset`处的buf读取`byteLength`个字节,并将结果解释为支持最高48位精度的无符号大端序整数。 1661 1662**系统能力:** SystemCapability.Utils.Lang 1663 1664**参数:** 1665 1666| 参数名 | 类型 | 必填 | 说明 | 1667| -------- | -------- | -------- | -------- | 1668| offset | number | 是 | 偏移量。 默认值: 0。 | 1669| byteLength | number | 是 | 要读取的字节数。 | 1670 1671 1672**返回值:** 1673 1674| 类型 | 说明 | 1675| -------- | -------- | 1676| number | 读取出的内容。 | 1677 1678**错误码:** 1679 1680以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1681 1682| 错误码ID | 错误信息 | 1683| -------- | -------- | 1684| 10200001 | The value of "[offset/byteLength]" is out of range. | 1685 1686**示例:** 1687 1688```ts 1689import buffer from '@ohos.buffer'; 1690 1691let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); 1692console.log(buf.readUIntBE(0, 6).toString(16)); 1693 1694let buf1 = buffer.allocUninitializedFromPool(4); 1695let result = buf1.writeUIntBE(0x13141516, 0, 4); 1696``` 1697 1698### readUIntLE 1699 1700readUIntLE(offset: number, byteLength: number): number 1701 1702从指定的`offset`处的buf读取`byteLength`个字节,并将结果解释为支持最高48位精度的无符号小端序整数。 1703 1704**系统能力:** SystemCapability.Utils.Lang 1705 1706**参数:** 1707 1708| 参数名 | 类型 | 必填 | 说明 | 1709| -------- | -------- | -------- | -------- | 1710| offset | number | 是 | 偏移量。 默认值: 0。 | 1711| byteLength | number | 是 | 要读取的字节数。 | 1712 1713 1714**返回值:** 1715 1716| 类型 | 说明 | 1717| -------- | -------- | 1718| number | 读取出的内容。 | 1719 1720**错误码:** 1721 1722以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1723 1724| 错误码ID | 错误信息 | 1725| -------- | -------- | 1726| 10200001 | The value of "[offset/byteLength]" is out of range. | 1727 1728**示例:** 1729 1730```ts 1731import buffer from '@ohos.buffer'; 1732 1733let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); 1734console.log(buf.readUIntLE(0, 6).toString(16)); 1735 1736let buf1 = buffer.allocUninitializedFromPool(4); 1737let result = buf1.writeUIntLE(0x13141516, 0, 4); 1738``` 1739 1740### subarray 1741 1742subarray(start?: number, end?: number): Buffer 1743 1744截取当前对象指定位置的数据并返回。 1745 1746**系统能力:** SystemCapability.Utils.Lang 1747 1748**参数:** 1749 1750| 参数名 | 类型 | 必填 | 说明 | 1751| -------- | -------- | -------- | -------- | 1752| start | number | 否 | 截取开始位置。 默认值: 0。 | 1753| end | number | 否 | 截取结束位置(不包含结束位置)。 默认值: 当前对象的字节长度。 | 1754 1755**返回值:** 1756 1757| 类型 | 说明 | 1758| -------- | -------- | 1759| Buffer | 返回新的Buffer对象。 | 1760 1761**示例:** 1762 1763```ts 1764import buffer from '@ohos.buffer'; 1765 1766let buf1 = buffer.allocUninitializedFromPool(26); 1767 1768for (let i = 0; i < 26; i++) { 1769 buf1[i] = i + 97; 1770} 1771const buf2 = buf1.subarray(0, 3); 1772console.log(buf2.toString('ascii', 0, buf2.length)); 1773// 打印: abc 1774``` 1775 1776### swap16 1777 1778swap16(): Buffer 1779 1780将当前对象解释为无符号的16位整数数组,并交换字节顺序。 1781 1782**系统能力:** SystemCapability.Utils.Lang 1783 1784 1785**返回值:** 1786 1787| 类型 | 说明 | 1788| -------- | -------- | 1789| Buffer | 交换之后的Buffer实例。 | 1790 1791**错误码:** 1792 1793以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1794 1795| 错误码ID | 错误信息 | 1796| -------- | -------- | 1797| 10200009 | Buffer size must be a multiple of 16-bits | 1798 1799**示例:** 1800 1801```ts 1802import buffer from '@ohos.buffer'; 1803 1804let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); 1805console.log(buf1.toString('hex')); // 打印: 0102030405060708 1806 1807buf1.swap16(); 1808console.log(buf1.toString('hex')); // 打印: 0201040306050807 1809``` 1810 1811### swap32 1812 1813swap32(): Buffer 1814 1815将当前对象解释为无符号的32位整数数组,并交换字节顺序。 1816 1817**系统能力:** SystemCapability.Utils.Lang 1818 1819 1820**返回值:** 1821 1822| 类型 | 说明 | 1823| -------- | -------- | 1824| Buffer | 交换之后的Buffer对象。 | 1825 1826**错误码:** 1827 1828以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1829 1830| 错误码ID | 错误信息 | 1831| -------- | -------- | 1832| 10200009 | Buffer size must be a multiple of 32-bits | 1833 1834**示例:** 1835 1836```ts 1837import buffer from '@ohos.buffer'; 1838 1839let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); 1840console.log(buf1.toString('hex')); // 打印: 0102030405060708 1841 1842buf1.swap32(); 1843console.log(buf1.toString('hex')); // 打印: 0403020108070605 1844``` 1845 1846### swap64 1847 1848swap64(): Buffer 1849 1850将当前对象解释为无符号的64位整数数组,并交换字节顺序。 1851 1852**系统能力:** SystemCapability.Utils.Lang 1853 1854 1855**返回值:** 1856 1857| 类型 | 说明 | 1858| -------- | -------- | 1859| Buffer | 交换之后的Buffer对象。 | 1860 1861**错误码:** 1862 1863以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1864 1865| 错误码ID | 错误信息 | 1866| -------- | -------- | 1867| 10200009 | Buffer size must be a multiple of 64-bits | 1868 1869**示例:** 1870 1871```ts 1872import buffer from '@ohos.buffer'; 1873 1874let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); 1875console.log(buf1.toString('hex')); // 打印: 0102030405060708 1876buf1.swap64(); 1877console.log(buf1.toString('hex')); // 打印: 0807060504030201 1878``` 1879 1880### toJSON 1881 1882toJSON(): Object 1883 1884将Buffer转为JSON并返回。 1885 1886**系统能力:** SystemCapability.Utils.Lang 1887 1888 1889**返回值:** 1890 1891| 类型 | 说明 | 1892| -------- | -------- | 1893| Object | JSON对象。 | 1894 1895**示例:** 1896 1897```ts 1898import buffer from '@ohos.buffer'; 1899 1900let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]); 1901let obj = buf1.toJSON(); 1902console.log(JSON.stringify(obj)) 1903// 打印: {"type":"Buffer","data":[1,2,3,4,5]} 1904``` 1905 1906### toString 1907 1908toString(encoding?: string, start?: number, end?: number): string 1909 1910将当前对象中指定位置数据转成指定编码格式字符串并返回。 1911 1912**系统能力:** SystemCapability.Utils.Lang 1913 1914**参数:** 1915 1916| 参数名 | 类型 | 必填 | 说明 | 1917| -------- | -------- | -------- | -------- | 1918| encoding | string | 否 | 字符编码格式。 默认值: 'utf-8'。 | 1919| start | number | 否 | 开始位置。 默认值: 0。 | 1920| end | number | 否 | 结束位置。 默认值: Buffer.length。 | 1921 1922**返回值:** 1923 1924| 类型 | 说明 | 1925| -------- | -------- | 1926| string | 字符串。 | 1927 1928**示例:** 1929 1930```ts 1931import buffer from '@ohos.buffer'; 1932 1933let buf1 = buffer.allocUninitializedFromPool(26); 1934for (let i = 0; i < 26; i++) { 1935 buf1[i] = i + 97; 1936} 1937console.log(buf1.toString('utf-8')); 1938// 打印: abcdefghijklmnopqrstuvwxyz 1939``` 1940 1941### values 1942 1943values(): IterableIterator<number> 1944 1945返回一个包含value的迭代器。 1946 1947**系统能力:** SystemCapability.Utils.Lang 1948 1949**返回值:** 1950 1951| 类型 | 说明 | 1952| -------- | -------- | 1953| IterableIterator<number> | 迭代器。 | 1954 1955**示例:** 1956 1957```ts 1958import buffer from '@ohos.buffer'; 1959 1960let buf1 = buffer.from('buffer'); 1961for (let value of buf1.values()) { 1962 console.log(value.toString()); 1963} 1964``` 1965 1966### write 1967 1968write(str: string, offset?: number, length?: number, encoding?: string): number 1969 1970从Buffer对象的offset偏移写入指定编码的字符串str,写入的字节长度为length。 1971 1972**系统能力:** SystemCapability.Utils.Lang 1973 1974**参数:** 1975 1976| 参数名 | 类型 | 必填 | 说明 | 1977| -------- | -------- | -------- | -------- | 1978| str | string | 是 | 要写入Buffer的字符串。 | 1979| offset | number | 否 | 偏移量。 默认值: 0。 | 1980| length | number | 否 | 最大字节长度。 默认值: (Buffer.length - offset)。| 1981| encoding | string | 否 | 字符编码。 默认值: 'utf-8'。 | 1982 1983 1984**返回值:** 1985 1986| 类型 | 说明 | 1987| -------- | -------- | 1988| number | 返回写入的字节数。 | 1989 1990**错误码:** 1991 1992以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 1993 1994| 错误码ID | 错误信息 | 1995| -------- | -------- | 1996| 10200001 | The value of "[offset/length]" is out of range. | 1997 1998**示例:** 1999 2000```ts 2001import buffer from '@ohos.buffer'; 2002 2003let buf = buffer.alloc(256); 2004let len = buf.write('\u00bd + \u00bc = \u00be', 0); 2005console.log(`${len} bytes: ${buf.toString('utf-8', 0, len)}`); 2006// 打印: 12 bytes: ½ + ¼ = ¾ 2007 2008let buffer1 = buffer.alloc(10); 2009let length = buffer1.write('abcd', 8); 2010``` 2011 2012### writeBigInt64BE 2013 2014writeBigInt64BE(value: bigint, offset?: number): number 2015 2016从Buffer对象的offset偏移写入有符号的大端序64位BigInt型数据value。 2017 2018**系统能力:** SystemCapability.Utils.Lang 2019 2020**参数:** 2021 2022| 参数名 | 类型 | 必填 | 说明 | 2023| -------- | -------- | -------- | -------- | 2024| value | bigint | 是 | 写入Buffer的数据。 | 2025| offset | number | 否 | 偏移量。 默认值: 0。 | 2026 2027 2028**返回值:** 2029 2030| 类型 | 说明 | 2031| -------- | -------- | 2032| number | 写入的字节数。 | 2033 2034**错误码:** 2035 2036以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2037 2038| 错误码ID | 错误信息 | 2039| -------- | -------- | 2040| 10200001 | The value of "[value/offset]" is out of range. | 2041 2042**示例:** 2043 2044```ts 2045import buffer from '@ohos.buffer'; 2046 2047let buf = buffer.allocUninitializedFromPool(8); 2048let result = buf.writeBigInt64BE(BigInt(0x0102030405060708), 0); 2049``` 2050 2051### writeBigInt64LE 2052 2053writeBigInt64LE(value: bigint, offset?: number): number 2054 2055从Buffer对象的offset偏移写入有符号的小端序64位BigInt型数据value。 2056 2057**系统能力:** SystemCapability.Utils.Lang 2058 2059**参数:** 2060 2061| 参数名 | 类型 | 必填 | 说明 | 2062| -------- | -------- | -------- | -------- | 2063| value | bigint | 是 | 写入Buffer的数据。 | 2064| offset | number | 否 | 偏移量。 默认值: 0。 | 2065 2066 2067**返回值:** 2068 2069| 类型 | 说明 | 2070| -------- | -------- | 2071| number | 写入的字节数。 | 2072 2073**错误码:** 2074 2075以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2076 2077| 错误码ID | 错误信息 | 2078| -------- | -------- | 2079| 10200001 | The value of "[value/offset]" is out of range. | 2080 2081**示例:** 2082 2083```ts 2084import buffer from '@ohos.buffer'; 2085 2086let buf = buffer.allocUninitializedFromPool(8); 2087let result = buf.writeBigInt64LE(BigInt(0x0102030405060708), 0); 2088``` 2089 2090### writeBigUInt64BE 2091 2092writeBigUInt64BE(value: bigint, offset?: number): number 2093 2094从Buffer对象的offset偏移写入无符号的大端序64位BigUInt型数据value。 2095 2096**系统能力:** SystemCapability.Utils.Lang 2097 2098**参数:** 2099 2100| 参数名 | 类型 | 必填 | 说明 | 2101| -------- | -------- | -------- | -------- | 2102| value | bigint | 是 | 写入Buffer的数据。 | 2103| offset | number | 否 | 偏移量。 默认值: 0。 | 2104 2105 2106**返回值:** 2107 2108| 类型 | 说明 | 2109| -------- | -------- | 2110| number | 写入的字节数。 | 2111 2112**错误码:** 2113 2114以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2115 2116| 错误码ID | 错误信息 | 2117| -------- | -------- | 2118| 10200001 | The value of "[value/offset]" is out of range. | 2119 2120**示例:** 2121 2122```ts 2123import buffer from '@ohos.buffer'; 2124 2125let buf = buffer.allocUninitializedFromPool(8); 2126let result = buf.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0); 2127``` 2128 2129### writeBigUInt64LE 2130 2131writeBigUInt64LE(value: bigint, offset?: number): number 2132 2133从Buffer对象的offset偏移写入无符号的小端序64位BigUInt型数据value。 2134 2135**系统能力:** SystemCapability.Utils.Lang 2136 2137**参数:** 2138 2139| 参数名 | 类型 | 必填 | 说明 | 2140| -------- | -------- | -------- | -------- | 2141| value | bigint | 是 | 写入Buffer的数据。 | 2142| offset | number | 否 | 偏移量。 默认值: 0。 | 2143 2144 2145**返回值:** 2146 2147| 类型 | 说明 | 2148| -------- | -------- | 2149| number | 写入的字节数。 | 2150 2151**错误码:** 2152 2153以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2154 2155| 错误码ID | 错误信息 | 2156| -------- | -------- | 2157| 10200001 | The value of "[value/offset]" is out of range. | 2158 2159**示例:** 2160 2161```ts 2162import buffer from '@ohos.buffer'; 2163 2164let buf = buffer.allocUninitializedFromPool(8); 2165let result = buf.writeBigUInt64LE(BigInt(0xdecafafecacefade), 0); 2166``` 2167 2168### writeDoubleBE 2169 2170writeDoubleBE(value: number, offset?: number): number 2171 2172从Buffer对象的offset偏移写入大端序的64位双浮点型数据value。 2173 2174**系统能力:** SystemCapability.Utils.Lang 2175 2176**参数:** 2177 2178| 参数名 | 类型 | 必填 | 说明 | 2179| -------- | -------- | -------- | -------- | 2180| value | number | 是 | 写入Buffer的数据。 | 2181| offset | number | 否 | 偏移量。 默认值: 0。 | 2182 2183 2184**返回值:** 2185 2186| 类型 | 说明 | 2187| -------- | -------- | 2188| number | 写入的字节数。 | 2189 2190**错误码:** 2191 2192以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2193 2194| 错误码ID | 错误信息 | 2195| -------- | -------- | 2196| 10200001 | The value of "[value/offset]" is out of range. | 2197 2198**示例:** 2199 2200```ts 2201import buffer from '@ohos.buffer'; 2202 2203let buf = buffer.allocUninitializedFromPool(8); 2204let result = buf.writeDoubleBE(123.456, 0); 2205``` 2206 2207### writeDoubleLE 2208 2209writeDoubleLE(value: number, offset?: number): number 2210 2211从Buffer对象的offset偏移写入小端序的64位双浮点型数据value。 2212 2213**系统能力:** SystemCapability.Utils.Lang 2214 2215**参数:** 2216 2217| 参数名 | 类型 | 必填 | 说明 | 2218| -------- | -------- | -------- | -------- | 2219| value | number | 是 | 写入Buffer的数据。 | 2220| offset | number | 否 | 偏移量。 默认值: 0。 | 2221 2222 2223**返回值:** 2224 2225| 类型 | 说明 | 2226| -------- | -------- | 2227| number | 写入的字节数。 | 2228 2229**错误码:** 2230 2231以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2232 2233| 错误码ID | 错误信息 | 2234| -------- | -------- | 2235| 10200001 | The value of "[value/offset]" is out of range. | 2236 2237**示例:** 2238 2239```ts 2240import buffer from '@ohos.buffer'; 2241 2242let buf = buffer.allocUninitializedFromPool(8); 2243let result = buf.writeDoubleLE(123.456, 0); 2244``` 2245 2246### writeFloatBE 2247 2248writeFloatBE(value: number, offset?: number): number 2249 2250从Buffer对象的offset偏移写入大端序的32位浮点型数据value。 2251 2252**系统能力:** SystemCapability.Utils.Lang 2253 2254**参数:** 2255 2256| 参数名 | 类型 | 必填 | 说明 | 2257| -------- | -------- | -------- | -------- | 2258| value | number | 是 | 写入Buffer的数据。 | 2259| offset | number | 否 | 偏移量。 默认值: 0。 | 2260 2261 2262**返回值:** 2263 2264| 类型 | 说明 | 2265| -------- | -------- | 2266| number | 写入的字节数。 | 2267 2268**错误码:** 2269 2270以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2271 2272| 错误码ID | 错误信息 | 2273| -------- | -------- | 2274| 10200001 | The value of "[value/offset]" is out of range. | 2275 2276**示例:** 2277 2278```ts 2279import buffer from '@ohos.buffer'; 2280 2281let buf = buffer.allocUninitializedFromPool(8); 2282let result = buf.writeFloatBE(0xcafebabe, 0); 2283``` 2284 2285 2286### writeFloatLE 2287 2288writeFloatLE(value: number, offset?: number): number 2289 2290从Buffer对象的offset偏移写入小端序的32位浮点型数据value。 2291 2292**系统能力:** SystemCapability.Utils.Lang 2293 2294**参数:** 2295 2296| 参数名 | 类型 | 必填 | 说明 | 2297| -------- | -------- | -------- | -------- | 2298| value | number | 是 | 写入Buffer的数据。 | 2299| offset | number | 否 | 偏移量。 默认值: 0。 | 2300 2301 2302**返回值:** 2303 2304| 类型 | 说明 | 2305| -------- | -------- | 2306| number | 写入的字节数。 | 2307 2308**错误码:** 2309 2310以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2311 2312| 错误码ID | 错误信息 | 2313| -------- | -------- | 2314| 10200001 | The value of "[value/offset]" is out of range. | 2315 2316**示例:** 2317 2318```ts 2319import buffer from '@ohos.buffer'; 2320 2321let buf = buffer.allocUninitializedFromPool(8); 2322let result = buf.writeFloatLE(0xcafebabe, 0); 2323``` 2324 2325### writeInt8 2326 2327writeInt8(value: number, offset?: number): number 2328 2329从Buffer对象的offset偏移写入8位有符号整型数据value。 2330 2331**系统能力:** SystemCapability.Utils.Lang 2332 2333**参数:** 2334 2335| 参数名 | 类型 | 必填 | 说明 | 2336| -------- | -------- | -------- | -------- | 2337| value | number | 是 | 写入Buffer的数据。 | 2338| offset | number | 否 | 偏移量。 默认值: 0。 | 2339 2340 2341**返回值:** 2342 2343| 类型 | 说明 | 2344| -------- | -------- | 2345| number | 写入的字节数。 | 2346 2347**错误码:** 2348 2349以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2350 2351| 错误码ID | 错误信息 | 2352| -------- | -------- | 2353| 10200001 | The value of "[value/offset]" is out of range. | 2354 2355**示例:** 2356 2357```ts 2358import buffer from '@ohos.buffer'; 2359 2360let buf = buffer.allocUninitializedFromPool(2); 2361let result = buf.writeInt8(2, 0); 2362let result1 = buf.writeInt8(-2, 1); 2363``` 2364 2365 2366### writeInt16BE 2367 2368writeInt16BE(value: number, offset?: number): number 2369 2370从Buffer对象的offset偏移写入大端序的16位有符号整型数据value。 2371 2372**系统能力:** SystemCapability.Utils.Lang 2373 2374**参数:** 2375 2376| 参数名 | 类型 | 必填 | 说明 | 2377| -------- | -------- | -------- | -------- | 2378| value | number | 是 | 写入Buffer的数据。 | 2379| offset | number | 否 | 偏移量。 默认值: 0。 | 2380 2381 2382**返回值:** 2383 2384| 类型 | 说明 | 2385| -------- | -------- | 2386| number | 写入的字节数。 | 2387 2388**错误码:** 2389 2390以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2391 2392| 错误码ID | 错误信息 | 2393| -------- | -------- | 2394| 10200001 | The value of "[value/offset]" is out of range. | 2395 2396**示例:** 2397 2398```ts 2399import buffer from '@ohos.buffer'; 2400 2401let buf = buffer.allocUninitializedFromPool(2); 2402let result = buf.writeInt16BE(0x0102, 0); 2403``` 2404 2405 2406### writeInt16LE 2407 2408writeInt16LE(value: number, offset?: number): number 2409 2410从Buffer对象的offset偏移写入小端序的16位有符号整型数据value。 2411 2412**系统能力:** SystemCapability.Utils.Lang 2413 2414**参数:** 2415 2416| 参数名 | 类型 | 必填 | 说明 | 2417| -------- | -------- | -------- | -------- | 2418| value | number | 是 | 写入Buffer的数据。 | 2419| offset | number | 否 | 偏移量。 默认值: 0。 | 2420 2421 2422**返回值:** 2423 2424| 类型 | 说明 | 2425| -------- | -------- | 2426| number | 写入的字节数。 | 2427 2428**错误码:** 2429 2430以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2431 2432| 错误码ID | 错误信息 | 2433| -------- | -------- | 2434| 10200001 | The value of "[value/offset]" is out of range. | 2435 2436**示例:** 2437 2438```ts 2439import buffer from '@ohos.buffer'; 2440 2441let buf = buffer.allocUninitializedFromPool(2); 2442let result = buf.writeInt16LE(0x0304, 0); 2443``` 2444 2445### writeInt32BE 2446 2447writeInt32BE(value: number, offset?: number): number 2448 2449从Buffer对象的offset偏移写入大端序的32位有符号整型数据value。 2450 2451**系统能力:** SystemCapability.Utils.Lang 2452 2453**参数:** 2454 2455| 参数名 | 类型 | 必填 | 说明 | 2456| -------- | -------- | -------- | -------- | 2457| value | number | 是 | 写入Buffer的数据。 | 2458| offset | number | 否 | 偏移量。 默认值: 0。 | 2459 2460 2461**返回值:** 2462 2463| 类型 | 说明 | 2464| -------- | -------- | 2465| number | 写入的字节数。 | 2466 2467**错误码:** 2468 2469以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2470 2471| 错误码ID | 错误信息 | 2472| -------- | -------- | 2473| 10200001 | The value of "[value/offset]" is out of range. | 2474 2475**示例:** 2476 2477```ts 2478import buffer from '@ohos.buffer'; 2479 2480let buf = buffer.allocUninitializedFromPool(4); 2481let result = buf.writeInt32BE(0x01020304, 0); 2482``` 2483 2484 2485### writeInt32LE 2486 2487writeInt32LE(value: number, offset?: number): number 2488 2489从Buffer对象的offset偏移写入小端序的32位有符号整型数据value。 2490 2491**系统能力:** SystemCapability.Utils.Lang 2492 2493**参数:** 2494 2495| 参数名 | 类型 | 必填 | 说明 | 2496| -------- | -------- | -------- | -------- | 2497| value | number | 是 | 写入Buffer的数据。 | 2498| offset | number | 否 | 偏移量。 默认值: 0。 | 2499 2500 2501**返回值:** 2502 2503| 类型 | 说明 | 2504| -------- | -------- | 2505| number | 写入的字节数。 | 2506 2507**错误码:** 2508 2509以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2510 2511| 错误码ID | 错误信息 | 2512| -------- | -------- | 2513| 10200001 | The value of "[value/offset]" is out of range. | 2514 2515**示例:** 2516 2517```ts 2518import buffer from '@ohos.buffer'; 2519 2520let buf = buffer.allocUninitializedFromPool(4); 2521let result = buf.writeInt32LE(0x05060708, 0); 2522``` 2523 2524### writeIntBE 2525 2526writeIntBE(value: number, offset: number, byteLength: number): number 2527 2528从Buffer对象的offset偏移写入大端序的有符号value数据,value字节长度为byteLength。 2529 2530**系统能力:** SystemCapability.Utils.Lang 2531 2532**参数:** 2533 2534| 参数名 | 类型 | 必填 | 说明 | 2535| -------- | -------- | -------- | -------- | 2536| value | number | 是 | 写入Buffer的数据。 | 2537| offset | number | 是 | 偏移量。 默认值: 0。 | 2538| byteLength | number | 是 | 要写入的字节数。 | 2539 2540 2541**返回值:** 2542 2543| 类型 | 说明 | 2544| -------- | -------- | 2545| number | 写入的字节数。 | 2546 2547**错误码:** 2548 2549以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2550 2551| 错误码ID | 错误信息 | 2552| -------- | -------- | 2553| 10200001 | The value of "[value/offset/byteLength]" is out of range. | 2554 2555**示例:** 2556 2557```ts 2558import buffer from '@ohos.buffer'; 2559 2560let buf = buffer.allocUninitializedFromPool(6); 2561let result = buf.writeIntBE(0x1234567890ab, 0, 6); 2562``` 2563 2564 2565### writeIntLE 2566 2567writeIntLE(value: number, offset: number, byteLength: number): number 2568 2569从Buffer对象的offset偏移写入小端序的有符号value数据,value字节长度为byteLength。 2570 2571**系统能力:** SystemCapability.Utils.Lang 2572 2573**参数:** 2574 2575| 参数名 | 类型 | 必填 | 说明 | 2576| -------- | -------- | -------- | -------- | 2577| value | number | 是 | 写入Buffer的数据。 | 2578| offset | number | 是 | 偏移量。 默认值: 0。 | 2579| byteLength | number | 是 | 要写入的字节数。 | 2580 2581 2582**返回值:** 2583 2584| 类型 | 说明 | 2585| -------- | -------- | 2586| number | 写入的字节数。 | 2587 2588**错误码:** 2589 2590以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2591 2592| 错误码ID | 错误信息 | 2593| -------- | -------- | 2594| 10200001 | The value of "[value/offset/byteLength]" is out of range. | 2595 2596**示例:** 2597 2598```ts 2599import buffer from '@ohos.buffer'; 2600 2601let buf = buffer.allocUninitializedFromPool(6); 2602let result = buf.writeIntLE(0x1234567890ab, 0, 6); 2603``` 2604 2605### writeUInt8 2606 2607writeUInt8(value: number, offset?: number): number 2608 2609从Buffer对象的offset偏移写入8位无符号整型数据value。 2610 2611**系统能力:** SystemCapability.Utils.Lang 2612 2613**参数:** 2614 2615| 参数名 | 类型 | 必填 | 说明 | 2616| -------- | -------- | -------- | -------- | 2617| value | number | 是 | 写入Buffer的数据。 | 2618| offset | number | 否 | 偏移量。 默认值: 0。 | 2619 2620 2621**返回值:** 2622 2623| 类型 | 说明 | 2624| -------- | -------- | 2625| number | 写入的字节数。 | 2626 2627**错误码:** 2628 2629以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2630 2631| 错误码ID | 错误信息 | 2632| -------- | -------- | 2633| 10200001 | The value of "[value/offset]" is out of range. | 2634 2635**示例:** 2636 2637```ts 2638import buffer from '@ohos.buffer'; 2639 2640let buf = buffer.allocUninitializedFromPool(4); 2641let result = buf.writeUInt8(0x3, 0); 2642let result1 = buf.writeUInt8(0x4, 1); 2643let result2 = buf.writeUInt8(0x23, 2); 2644let result3 = buf.writeUInt8(0x42, 3); 2645``` 2646 2647### writeUInt16BE 2648 2649writeUInt16BE(value: number, offset?: number): number 2650 2651从Buffer对象的offset偏移写入大端序的16位无符号整型数据value。 2652 2653**系统能力:** SystemCapability.Utils.Lang 2654 2655**参数:** 2656 2657| 参数名 | 类型 | 必填 | 说明 | 2658| -------- | -------- | -------- | -------- | 2659| value | number | 是 | 写入Buffer的数据。 | 2660| offset | number | 否 | 偏移量。 默认值为0。 | 2661 2662 2663**返回值:** 2664 2665| 类型 | 说明 | 2666| -------- | -------- | 2667| number | 写入的字节数。 | 2668 2669**错误码:** 2670 2671以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2672 2673| 错误码ID | 错误信息 | 2674| -------- | -------- | 2675| 10200001 | The value of "[value/offset]" is out of range. | 2676 2677**示例:** 2678 2679```ts 2680import buffer from '@ohos.buffer'; 2681 2682let buf = buffer.allocUninitializedFromPool(4); 2683let result = buf.writeUInt16BE(0xdead, 0); 2684let result1 = buf.writeUInt16BE(0xbeef, 2); 2685``` 2686 2687### writeUInt16LE 2688 2689writeUInt16LE(value: number, offset?: number): number 2690 2691从Buffer对象的offset偏移写入小端序的16位无符号整型数据value。 2692 2693**系统能力:** SystemCapability.Utils.Lang 2694 2695**参数:** 2696 2697| 参数名 | 类型 | 必填 | 说明 | 2698| -------- | -------- | -------- | -------- | 2699| value | number | 是 | 写入Buffer的数据。 | 2700| offset | number | 否 | 偏移量。 默认值: 0。 | 2701 2702 2703**返回值:** 2704 2705| 类型 | 说明 | 2706| -------- | -------- | 2707| number | 写入的字节数。 | 2708 2709**错误码:** 2710 2711以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2712 2713| 错误码ID | 错误信息 | 2714| -------- | -------- | 2715| 10200001 | The value of "[value/offset]" is out of range. | 2716 2717**示例:** 2718 2719```ts 2720import buffer from '@ohos.buffer'; 2721 2722let buf = buffer.allocUninitializedFromPool(4); 2723let result = buf.writeUInt16LE(0xdead, 0); 2724let result1 = buf.writeUInt16LE(0xbeef, 2); 2725``` 2726 2727### writeUInt32BE 2728 2729writeUInt32BE(value: number, offset?: number): number 2730 2731从Buffer对象的offset偏移写入大端序的32位无符号整型数据value。 2732 2733**系统能力:** SystemCapability.Utils.Lang 2734 2735**参数:** 2736 2737| 参数名 | 类型 | 必填 | 说明 | 2738| -------- | -------- | -------- | -------- | 2739| value | number | 是 | 写入Buffer的数据。 | 2740| offset | number | 否 | 偏移量。 默认值: 0。 | 2741 2742 2743**返回值:** 2744 2745| 类型 | 说明 | 2746| -------- | -------- | 2747| number | 写入的字节数。 | 2748 2749**错误码:** 2750 2751以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2752 2753| 错误码ID | 错误信息 | 2754| -------- | -------- | 2755| 10200001 | The value of "[value/offset]" is out of range. | 2756 2757**示例:** 2758 2759```ts 2760import buffer from '@ohos.buffer'; 2761 2762let buf = buffer.allocUninitializedFromPool(4); 2763let result = buf.writeUInt32BE(0xfeedface, 0); 2764``` 2765 2766### writeUInt32LE 2767 2768writeUInt32LE(value: number, offset?: number): number 2769 2770从Buffer对象的offset偏移写入小端序的32位无符号整型数据value。 2771 2772**系统能力:** SystemCapability.Utils.Lang 2773 2774**参数:** 2775 2776| 参数名 | 类型 | 必填 | 说明 | 2777| -------- | -------- | -------- | -------- | 2778| value | number | 是 | 写入Buffer对象的数字。 | 2779| offset | number | 否 | 偏移量。 默认值: 0。 | 2780 2781 2782**返回值:** 2783 2784| 类型 | 说明 | 2785| -------- | -------- | 2786| number | 写入的字节数。 | 2787 2788**错误码:** 2789 2790以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2791 2792| 错误码ID | 错误信息 | 2793| -------- | -------- | 2794| 10200001 | The value of "[value/offset]" is out of range. | 2795 2796**示例:** 2797 2798```ts 2799import buffer from '@ohos.buffer'; 2800 2801let buf = buffer.allocUninitializedFromPool(4); 2802let result = buf.writeUInt32LE(0xfeedface, 0); 2803``` 2804 2805### writeUIntBE 2806 2807writeUIntBE(value: number, offset: number, byteLength: number): number 2808 2809从Buffer对象的offset偏移写入大端序的无符号value数据,value字节长度为byteLength。 2810 2811**系统能力:** SystemCapability.Utils.Lang 2812 2813**参数:** 2814 2815| 参数名 | 类型 | 必填 | 说明 | 2816| -------- | -------- | -------- | -------- | 2817| value | number | 是 | 写入Buffer的数据。 | 2818| offset | number | 是 | 偏移量。 默认值: 0。 | 2819| byteLength | number | 是 | 要写入的字节数。 | 2820 2821 2822**返回值:** 2823 2824| 类型 | 说明 | 2825| -------- | -------- | 2826| number | 写入的字节数。 | 2827 2828**错误码:** 2829 2830以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2831 2832| 错误码ID | 错误信息 | 2833| -------- | -------- | 2834| 10200001 | The value of "[value/offset/byteLength]" is out of range. | 2835 2836**示例:** 2837 2838```ts 2839import buffer from '@ohos.buffer'; 2840 2841let buf = buffer.allocUninitializedFromPool(6); 2842let result = buf.writeUIntBE(0x1234567890ab, 0, 6); 2843``` 2844 2845### writeUIntLE 2846 2847writeUIntLE(value: number, offset: number, byteLength: number): number 2848 2849从Buffer对象的offset偏移写入小端序的无符号value数据,value字节长度为byteLength。 2850 2851**系统能力:** SystemCapability.Utils.Lang 2852 2853**参数:** 2854 2855| 参数名 | 类型 | 必填 | 说明 | 2856| -------- | -------- | -------- | -------- | 2857| value | number | 是 | 写入Buffer的数据。 | 2858| offset | number | 是 | 偏移量。 默认值: 0。 | 2859| byteLength | number | 是 | 要写入的字节数。 | 2860 2861 2862**返回值:** 2863 2864| 类型 | 说明 | 2865| -------- | -------- | 2866| number | 写入的字节数。 | 2867 2868**错误码:** 2869 2870以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。 2871 2872| 错误码ID | 错误信息 | 2873| -------- | -------- | 2874| 10200001 | The value of "[value/offset/byteLength]" is out of range. | 2875 2876**示例:** 2877 2878```ts 2879import buffer from '@ohos.buffer'; 2880 2881let buf = buffer.allocUninitializedFromPool(6); 2882let result = buf.writeUIntLE(0x1234567890ab, 0, 6); 2883``` 2884 2885## Blob 2886 2887### 属性 2888 2889**系统能力:** SystemCapability.Utils.Lang 2890 2891| 名称 | 类型 | 可读 | 可写 | 说明 | 2892| -------- | -------- | -------- | -------- | -------- | 2893| size | number | 是 | 否 | Blob实例的总字节大小。 | 2894| type | string | 是 | 否 | Blob实例的内容类型。 | 2895 2896### constructor 2897 2898constructor(sources: string[] | ArrayBuffer[] | TypedArray[] | DataView[] | Blob[] , options?: Object) 2899 2900Blob的构造函数。 2901 2902**系统能力:** SystemCapability.Utils.Lang 2903 2904**参数:** 2905 2906| 参数名 | 类型 | 必填 | 说明 | 2907| -------- | -------- | -------- | -------- | 2908| sources | string[] \| ArrayBuffer[] \| TypedArray[] \| DataView[] \| Blob[] | 是 | Blob实例的数据源。 | 2909| options | Object | 否 | options:<br/>- endings:含义为结束符'\n'的字符串如何被输出,为'transparent'或'native'。native代表行结束符会跟随系统。'transparent'代表会保持Blob中保存的结束符不变。此参数非必填,默认值为'transparent'。<br/>- type:Blob内容类型。其目的是让类型传达数据的MIME媒体类型,但是不执行类型格式的验证。此参数非必填,默认参数为''。 | 2910 2911 2912**示例:** 2913```ts 2914import buffer from '@ohos.buffer'; 2915 2916let blob = new buffer.Blob(['a', 'b', 'c']); 2917let blob1 = new buffer.Blob(['a', 'b', 'c'], {endings:'native', type: 'MIME'}); 2918``` 2919 2920### arrayBuffer 2921 2922arrayBuffer(): Promise<ArrayBuffer> 2923 2924将Blob中的数据放入到ArrayBuffer中,并返回一个Promise。 2925 2926**系统能力:** SystemCapability.Utils.Lang 2927 2928**返回值:** 2929| 类型 | 说明 | 2930| -------- | -------- | 2931| Promise<ArrayBuffer> | Promise对象,返回包含Blob数据的ArrayBuffer。 | 2932 2933**示例:** 2934```ts 2935let blob = new buffer.Blob(['a', 'b', 'c']); 2936let pro = blob.arrayBuffer(); 2937pro.then(val => { 2938 let uintarr = new Uint8Array(val); 2939 console.log(uintarr.toString()); 2940}); 2941``` 2942### slice 2943 2944slice(start?: number, end?: number, type?: string): Blob 2945 2946创建并返回一个复制原Blob对象中指定数据长度的Blob新对象。 2947 2948**系统能力:** SystemCapability.Utils.Lang 2949 2950**参数:** 2951 2952| 参数名 | 类型 | 必填 | 说明 | 2953| -------- | -------- | -------- | -------- | 2954| start | number | 否 | 起始位置。默认值为0。 | 2955| end | number | 否 | 结束位置。默认值为原Blob对象中的数据长度。 | 2956| type | string | 否 | 内容类型。默认值为''。 | 2957 2958**返回值:** 2959| 类型 | 说明 | 2960| -------- | -------- | 2961| Blob | 新的Blob实例对象。 | 2962 2963**示例:** 2964```ts 2965let blob = new buffer.Blob(['a', 'b', 'c']); 2966let blob2 = blob.slice(0, 2); 2967let blob3 = blob.slice(0, 2, "MIME"); 2968``` 2969 2970### text 2971 2972text(): Promise<string> 2973 2974使用UTF8进行解码并返回一个文本。使用Promise异步回调。 2975 2976**系统能力:** SystemCapability.Utils.Lang 2977 2978**返回值:** 2979| 类型 | 说明 | 2980| -------- | -------- | 2981| Promise<string> | Promise对象,返回包含以UTF8解码的文本。 | 2982 2983**示例:** 2984```ts 2985let blob = new buffer.Blob(['a', 'b', 'c']); 2986let pro = blob.text(); 2987pro.then(val => { 2988 console.log(val) 2989}); 2990```