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