• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&nbsp;\|&nbsp;0&nbsp;\|&nbsp;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[]&nbsp;\|&nbsp;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&nbsp;\|&nbsp;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&nbsp;\|&nbsp;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&nbsp;\|&nbsp;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&nbsp;\|&nbsp;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&nbsp;\|&nbsp;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&nbsp;\|&nbsp;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&lt;[number,&nbsp;number]&gt;
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&nbsp;\|&nbsp;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&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;Uint8Array&nbsp;\|&nbsp;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&nbsp;\|&nbsp;number&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;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&nbsp;\|&nbsp;number&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;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&lt;number&gt;
782
783返回一个包含key值的迭代器。
784
785**系统能力:** SystemCapability.Utils.Lang
786
787**返回值:**
788
789| 类型 | 说明 |
790| -------- | -------- |
791|  IterableIterator&lt;number&gt; | 返回一个包含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&nbsp;\|&nbsp;number&nbsp;\|&nbsp;Buffer&nbsp;\|&nbsp;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&lt;number&gt;
1944
1945返回一个包含value的迭代器。
1946
1947**系统能力:** SystemCapability.Utils.Lang
1948
1949**返回值:**
1950
1951| 类型 | 说明 |
1952| -------- | -------- |
1953| IterableIterator&lt;number&gt; | 迭代器。 |
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[]&nbsp;\|&nbsp;ArrayBuffer[]&nbsp;\|&nbsp;TypedArray[]&nbsp;\|&nbsp;DataView[]&nbsp;\|&nbsp;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&lt;ArrayBuffer&gt;
2923
2924将Blob中的数据放入到ArrayBuffer中,并返回一个Promise。
2925
2926**系统能力:** SystemCapability.Utils.Lang
2927
2928**返回值:**
2929| 类型 | 说明 |
2930| -------- | -------- |
2931| Promise&lt;ArrayBuffer&gt; | 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&lt;string&gt;
2973
2974使用UTF8进行解码并返回一个文本。使用Promise异步回调。
2975
2976**系统能力:** SystemCapability.Utils.Lang
2977
2978**返回值:**
2979| 类型 | 说明 |
2980| -------- | -------- |
2981| Promise&lt;string&gt; | 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```