openharmony 鸿蒙 js-apis-fastbuffer

2025-06-12 浏览 (1)

@ohos.fastbuffer (FastBuffer)

FastBuffer对象是更高效的Buffer容器,用于表示固定长度的字节序列,是专门存放二进制数据的缓存区。

推荐使用场景: 当构造FastBuffer的入参为已知类型,且为非Symbol.toPrimitive或valueOf()的对象时,推荐使用FastBuffer,可以高效处理大量二进制数据,如图片处理和文件接收上传等。

说明:

本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import { fastbuffer } from '@kit.ArkTS';

BufferEncoding

type BufferEncoding = 'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'

表示支持的编码格式类型。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

类型说明
'ascii'表示ascii格式。
'utf8'表示utf8格式。
'utf-8'表示utf8格式。
'utf16le'表示utf16小端序格式。
'ucs2'utf16le格式的别名。
'ucs-2'utf16le格式的别名。
'base64'表示base64格式。
'base64url'表示base64url格式。
'latin1'iso-8859-1的别名,向下兼容ascii格式。
'binary'表示二进制格式。
'hex'表示十六进制格式。

fastbuffer.alloc

alloc(size: number, fill?: string|FastBuffer|number, encoding?: BufferEncoding): FastBuffer

创建指定字节长度的FastBuffer对象并初始化。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
sizenumber指定的FastBuffer对象长度,单位:字节。取值范围:0 <= size <= UINT32_MAX。
fillstring | FastBuffer | number填充至新缓存区的值,默认值:0。
encodingBufferEncoding编码格式(当fill为string时,才有意义)。默认值:'utf8'。传入无法识别的encoding会抛出TypeError。

返回值:

类型说明
FastBuffer返回一个FastBuffer对象。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.alloc(5);
let buf2 = fastbuffer.alloc(5, 'a');
let buf3 = fastbuffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
console.info(buf2.toString());
// 输出结果:aaaaa
console.info(buf3.toString());
// 输出结果:hello world

fastbuffer.allocUninitializedFromPool

allocUninitializedFromPool(size: number): FastBuffer

创建指定大小未初始化的FastBuffer对象。内存从缓冲池分配。

创建的FastBuffer内容未知,需要使用fill函数来初始化FastBuffer对象。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
sizenumber指定的FastBuffer对象长度,单位:字节。取值范围:0 <= size <= UINT32_MAX。

返回值:

类型说明
FastBuffer未初始化的Buffer实例。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(10);
buf.fill(0);
// "buf":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

fastbuffer.allocUninitialized

allocUninitialized(size: number): FastBuffer

创建指定大小未初始化的FastBuffer对象。内存不从缓冲池分配。

创建的FastBuffer的内容未知,需要使用fill函数来初始化FastBuffer对象。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
sizenumber指定的FastBuffer对象长度,单位:字节。取值范围:0 <= size <= UINT32_MAX。

返回值:

类型说明
FastBuffer未初始化的FastBuffer实例。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitialized(10);
buf.fill(0);
// "buf":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

fastbuffer.byteLength

byteLength(value: string|FastBuffer|TypedArray|DataView|ArrayBuffer|SharedArrayBuffer, encoding?: BufferEncoding): number

根据不同的编码格式,返回指定字符串的字节数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestring | FastBuffer | TypedArray | DataView | ArrayBuffer | SharedArrayBuffer指定字符串。
encodingBufferEncoding编码格式。默认值:'utf8'。传入无法识别的encoding会抛出TypeError。

返回值:

类型说明
number返回指定字符串的字节数。

示例:

import { fastbuffer } from '@kit.ArkTS';

let str = '\u00bd + \u00bc = \u00be';
console.info(`${str}: ${str.length} characters, ${fastbuffer.byteLength(str, 'utf-8')} bytes`);
// 输出结果:½ + ¼ = ¾: 9 characters, 12 bytes

fastbuffer.compare

compare(buf1: FastBuffer|Uint8Array, buf2: FastBuffer|Uint8Array): -1|0|1

返回两个FastBuffer对象的比较结果,通常用于对FastBuffer对象数组进行排序。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
buf1FastBuffer | Uint8Array待比较的第一个对象。
buf2FastBuffer | Uint8Array待比较的第二个对象。

返回值:

类型说明
-1 | 0 | 1如果buf1与buf2相同,则返回0。
如果排序时buf1位于buf2之后,则返回1。
如果排序时buf1位于buf2之前,则返回-1。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID错误信息
10200068The underlying ArrayBuffer is null or detach.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from('1234');
let buf2 = fastbuffer.from('0123');
let res = fastbuffer.compare(buf1, buf2);

console.info(Number(res).toString());
// 输出结果:1

fastbuffer.concat

concat(list: FastBuffer[]|Uint8Array[], totalLength?: number): FastBuffer

将数组中指定字节长度的内容复制到新的FastBuffer对象中并返回拼接后的FastBuffer对象。

当数组中所有对象的长度总和大于totalLength时,返回结果的长度将被截断为totalLength。

当数组中所有对象的长度总和小于totalLength时,返回结果的多余部分将会被填充为0。

系统能力: SystemCapability.Utils.Lang

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

参数:

参数名类型必填说明
listFastBuffer[] | Uint8Array[]实例数组。
totalLengthnumber需要复制的总字节长度,默认值为0。

返回值:

类型说明
FastBuffer返回新的FastBuffer对象。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001Range error. Possible causes: The value of the parameter is not within the specified range.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from("1234");
let buf2 = fastbuffer.from("abcd");
let buf = fastbuffer.concat([buf1, buf2]);
console.info(buf.toString('hex'));
// 输出结果:3132333461626364

fastbuffer.from

from(array: number[]): FastBuffer

根据指定数组创建新的FastBuffer对象。

系统能力: SystemCapability.Utils.Lang

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

参数:

参数名类型必填说明
arraynumber[]指定数组。

返回值:

类型说明
FastBuffer新的FastBuffer对象。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
console.info(buf.toString('hex'));
// 输出结果:627566666572

fastbuffer.from

from(arrayBuffer: ArrayBuffer|SharedArrayBuffer, byteOffset?: number, length?: number): FastBuffer

创建与arrayBuffer共享内存的指定长度的FastBuffer对象。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
arrayBufferArrayBuffer | SharedArrayBuffer实例对象。
byteOffsetnumber字节偏移量,默认值:0。
lengthnumber字节长度, 默认值:(arrayBuffer.byteLength - byteOffset)。取值范围:0 <= length <= arrayBuffer.byteLength - byteOffset

返回值:

类型说明
FastBuffer返回一个FastBuffer对象,该对象与入参对象arrayBuffer共享相同的内存区域。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001Range error. Possible causes: The value of the parameter is not within the specified range.
10200068The underlying ArrayBuffer is null or detach.

示例:

import { fastbuffer } from '@kit.ArkTS';

let ab = new ArrayBuffer(10);
let buf = fastbuffer.from(ab, 0, 2);
console.info(buf.length.toString());
// 输出结果:2

fastbuffer.from

from(buffer: FastBuffer|Uint8Array): FastBuffer

当入参为FastBuffer对象时,创建新的FastBuffer对象并复制入参FastBuffer对象的数据,然后返回新对象。 当入参为Uint8Array对象时,基于Uint8Array对象的内存创建新的FastBuffer对象并返回,保持数据的内存关联。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
bufferFastBuffer | Uint8Array对象数据。

返回值:

类型说明
FastBuffer返回新的FastBuffer对象。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID错误信息
10200068The underlying ArrayBuffer is null or detach.

示例:

import { fastbuffer } from '@kit.ArkTS';

// 以FastBuffer对象类型进行创建新的FastBuffer对象
let buf1 = fastbuffer.from('buffer');
let buf2 = fastbuffer.from(buf1);
console.info(buf2.toString());
// 输出结果:buffer

// 以Uint8Array对象类型进行创建FastBuffer对象,保持对象间内存共享
let uint8Array = new Uint8Array(10);
let buf3 = fastbuffer.from(uint8Array);
buf3.fill(1)
console.info("uint8Array:", uint8Array)
// 输出结果:1,1,1,1,1,1,1,1,1,1

fastbuffer.from

from(value: string, encoding?: BufferEncoding): FastBuffer

根据指定编码格式的字符串,创建新的FastBuffer对象。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestring字符串。
encodingBufferEncoding编码格式。默认值:'utf8'。传入无法识别的encoding会抛出TypeError。

返回值:

类型说明
FastBuffer返回新的FastBuffer对象。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from('this is a test');
let buf2 = fastbuffer.from('7468697320697320612074c3a97374', 'hex');

console.info(buf1.toString());
// 输出结果:this is a test
console.info(buf2.toString());
// 输出结果:this is a tést

fastbuffer.isBuffer

isBuffer(obj: Object): boolean

判断obj是否为FastBuffer。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
objObject判断对象。

返回值:

类型说明
boolean如果obj是FastBuffer,则返回true,否则返回false。

示例:

import { fastbuffer } from '@kit.ArkTS';

let result = fastbuffer.isBuffer(fastbuffer.alloc(10)); // 10: fastbuffer size
console.info("result = " + result);
// 输出结果:result = true
let result1 = fastbuffer.isBuffer(fastbuffer.from('foo'));
console.info("result1 = " + result1);
// 输出结果:result1 = true
let result2 = fastbuffer.isBuffer('a string');
console.info("result2 = " + result2);
// 输出结果:result2 = false
let result3 = fastbuffer.isBuffer([]);
console.info("result3 = " + result3);
// 输出结果:result3 = false
let result4 = fastbuffer.isBuffer(new Uint8Array(1024));
console.info("result4 = " + result4);
// 输出结果:result4 = false

fastbuffer.isEncoding

isEncoding(encoding: string): boolean

判断encoding是否为支持的编码格式。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
encodingstring编码格式。

返回值:

类型说明
boolean是支持的编码格式返回true,反之则返回false。

示例:

import { fastbuffer } from '@kit.ArkTS';

console.info(fastbuffer.isEncoding('utf-8').toString());
// 输出结果:true
console.info(fastbuffer.isEncoding('hex').toString());
// 输出结果:true
console.info(fastbuffer.isEncoding('utf/8').toString());
// 输出结果:false
console.info(fastbuffer.isEncoding('').toString());
// 输出结果:false

fastbuffer.transcode

transcode(source: FastBuffer|Uint8Array, fromEnc: string, toEnc: string): FastBuffer

将FastBuffer或Uint8Array对象从fromEnc编码转换为toEnc编码。

fastbuffer.transcode支持的编码:'ascii'|'utf8'|'utf16le'|'ucs2'|'latin1'|'binary'

系统能力: SystemCapability.Utils.Lang

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

参数:

参数名类型必填说明
sourceFastBuffer | Uint8Array实例对象。
fromEncstring当前编码。 支持的格式范围为BufferEncoding
toEncstring目标编码。 支持的格式范围为BufferEncoding

返回值:

类型说明
FastBuffer将当前编码转换成目标编码,并返回一个新的FastBuffer对象。

示例:

import { fastbuffer } from '@kit.ArkTS';

let newBuf = fastbuffer.transcode(fastbuffer.from('buffer'), 'utf-8', 'ascii');
console.info("newBuf = " + newBuf.toString('ascii'));
// 输出结果:newBuf = buffer

FastBuffer

属性

系统能力: SystemCapability.Utils.Lang

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

名称类型只读可选说明
lengthnumberFastBuffer对象的字节长度。
bufferArrayBufferArrayBuffer对象。
byteOffsetnumber当前Buffer所在内存池的偏移量。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from("1236");
console.info(JSON.stringify(buf.length));
// 输出结果:4
let arrayBuffer = buf.buffer;
console.info(JSON.stringify(new Uint8Array(arrayBuffer)));
// 输出结果:{"0":49,"1":50,"2":51,"3":54}
console.info(JSON.stringify(buf.byteOffset));
// 输出结果:0

compare

compare(target: FastBuffer|Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): -1|0|1

比较当前FastBuffer对象与目标FastBuffer对象,并返回Buffer在排序中的结果。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
targetFastBuffer | Uint8Array要比较的实例对象。
targetStartnumbertarget实例中开始的偏移量。默认值:0。 0 <= targetStart <= target.length。
targetEndnumbertarget实例中结束的偏移量(不包含结束位置)。默认值:目标对象的字节长度。取值范围:0 <= targetEnd <= target.length。
sourceStartnumberthis实例中开始的偏移量。默认值:0。取值范围:0 <= sourceStart <= this.length。
sourceEndnumberthis实例中结束的偏移量(不包含结束位置)。默认值:当前对象的字节长度。取值范围:0 <= sourceEnd <= this.length。

返回值:

类型说明
number返回比较结果。
-1:当前排列在目标前;
0:当前与目标相同;
1:当前排列在目标后。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001Range error. Possible causes: The value of the parameter is not within the specified range.
10200068The underlying ArrayBuffer is null or detach.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
let buf2 = fastbuffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]);

console.info(buf1.compare(buf2, 5, 9, 0, 4).toString());
// 输出结果:0
console.info(buf1.compare(buf2, 0, 6, 4).toString());
// 输出结果:-1
console.info(buf1.compare(buf2, 5, 6, 5).toString());
// 输出结果:1

copy

copy(target: FastBuffer|Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number

this实例中指定位置的数据复制到target的指定位置上,并返回复制的字节总长度。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
targetFastBuffer | Uint8Array要复制到的Buffer或Uint8Array实例。
targetStartnumbertarget实例中开始写入的偏移量。默认值:0。取值范围:0 <= targetStart <= UINT32_MAX。
sourceStartnumberthis实例中开始复制的偏移量。默认值: 0。取值范围:0 <= sourceStart <= UINT32_MAX。
sourceEndnumberthis实例中结束复制的偏移量(不包含结束位置)。默认值:当前对象的字节长度。取值范围:0 <= sourceEnd <= this.length。

返回值:

类型说明
number复制的字节总长度。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001Range error. Possible causes: The value of the parameter is not within the specified range.
10200068The underlying ArrayBuffer is null or detach.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.allocUninitializedFromPool(26);
let buf2 = fastbuffer.allocUninitializedFromPool(26).fill('!');

for (let i = 0; i < 26; i++) {
  buf1.writeInt8(i + 97, i);
}

buf1.copy(buf2, 8, 16, 20);
console.info(buf2.toString('ascii', 0, 25));
// 输出结果:!!!!!!!!qrst!!!!!!!!!!!!!

entries

entries(): IterableIterator<[number, number]>

返回一个包含key值和value值的迭代器。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
IterableIterator<[number, number]>包含key和value的迭代器,同时两者皆为number类型。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from('buffer');
let pair = buf.entries();
let next: IteratorResult<Object[]> = pair.next();
while (!next.done) {
  console.info("fastbuffer: " + next.value);
  /*
  输出结果:buffer: 0,98
           fastbuffer: 1,117
           fastbuffer: 2,102
           fastbuffer: 3,102
           fastbuffer: 4,101
           fastbuffer: 5,114
  */
  next = pair.next();
}

equals

equals(otherBuffer: Uint8Array|FastBuffer): boolean

逐字节比较this和otherBuffer是否相等。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
otherBufferUint8Array | FastBuffer比较的目标对象。

返回值:

类型说明
booleanthis和otherBuffer逐字节相等则返回true,否则返回false。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID错误信息
10200068The underlying ArrayBuffer is null or detach.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from('ABC');
let buf2 = fastbuffer.from('414243', 'hex');
let buf3 = fastbuffer.from('ABCD');

console.info(buf1.equals(buf2).toString());
// 输出结果:true
console.info(buf1.equals(buf3).toString());
// 输出结果:false

fill

fill(value: string|FastBuffer|Uint8Array|number, offset?: number, end?: number, encoding?: BufferEncoding): FastBuffer

使用value填充当前对象指定位置的数据,默认为循环填充,并返回填充后的FastBuffer对象。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestring | FastBuffer | Uint8Array | number用于填充的值。
offsetnumber起始偏移量。默认值:0。取值范围:0 <= offset <= this.length。
endnumber结束偏移量(不包含结束位置)。 默认值:当前对象的字节长度。取值范围:0 <= end <= this.length。
encodingBufferEncoding字符编码格式(value为string才有意义)。默认值:'utf8'。传入无法识别的encoding会抛出TypeError。

返回值:

类型说明
FastBuffer返回填充后的FastBuffer对象。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001Range error. Possible causes: The value of the parameter is not within the specified range.
10200068The underlying ArrayBuffer is null or detach.

示例:

import { fastbuffer } from '@kit.ArkTS';

let b = fastbuffer.allocUninitializedFromPool(50).fill('h');
console.info(b.toString());
// 输出结果:hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

includes

includes(value: string|number|FastBuffer|Uint8Array, byteOffset?: number, encoding?: BufferEncoding): boolean

检查FastBuffer对象是否包含value值。

若byteOffset为正数,则从0开始计算偏移量;如果为负数,则从末尾开始计算偏移量。

当byteOffset大于等于this.length时,返回false。当byteOffset小于等于-this.length,查找整个FastBuffer中是否存在value

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestring | number | FastBuffer | Uint8Array要搜索的内容。
byteOffsetnumber字节偏移量。若为正数,则从0开始计算偏移量;若byteOffset为正数,则从0开始计算偏移量;如果为负数,则从末尾开始计算偏移量。默认值:0。
encodingBufferEncoding字符编码格式。默认值:'utf8'。传入无法识别的encoding会抛出TypeError。

返回值:

类型说明
boolean若FastBuffer对象包含value值时返回true,否则为false。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from('this is a buffer');
console.info(buf.includes('this').toString());
// 输出结果:true
console.info(buf.includes('be').toString());
// 输出结果:false

indexOf

indexOf(value: string|number|FastBuffer|Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number

返回当前对象中首次出现value的索引,如果不包含value,则返回-1。

若byteOffset为正数,则从0开始计算偏移量;如果为负数,则从末尾开始计算偏移量。

当byteOffset大于等于this.length时,返回-1。当byteOffset小于等于-this.length,返回整个FastBuffer中首次出现value的索引。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestring | number | FastBuffer | Uint8Array要查找的内容。
byteOffsetnumber字节偏移量。若byteOffset为正数,则从0开始计算偏移量;如果为负数,则从末尾开始计算偏移量。默认值:0。
encodingBufferEncoding字符编码格式。默认值:'utf8'。传入无法识别的encoding会抛出TypeError。

返回值:

类型说明
number返回第一次出现的位置。

示例

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from('this is a buffer');
console.info(buf.indexOf('this').toString());
// 输出结果:0
console.info(buf.indexOf('is').toString());
// 输出结果:2

keys

keys(): IterableIterator<number>

返回包含key值的迭代器。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
IterableIterator<number>返回一个包含key值的迭代器。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from('buffer');
let numbers = Array.from(buf.keys());
for (const key of numbers) {
  console.info(key.toString());
  /*
  输出结果:0
           1
           2
           3
           4
           5
  */
}

values

values(): IterableIterator<number>

返回一个包含value的迭代器。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
IterableIterator<number>迭代器。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from('buffer');
let pair = buf1.values()
let next:IteratorResult<number> = pair.next()
while (!next.done) {
  console.info(next.value.toString());
  /*
  输出结果:98
           117
           102
           102
           101
           114
  */
  next = pair.next();
}

lastIndexOf

lastIndexOf(value: string|number|FastBuffer|Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number

返回当前对象中最后一次出现value的索引,如果对象不包含value,则返回-1。

若byteOffset为正数,则从0开始计算偏移量;如果为负数,则从末尾开始计算偏移量。

当byteOffset大于等于this.length时,返回整个FastBuffer中最后一次出现value的索引。当byteOffset小于等于-this.length时,返回-1。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestring | number | FastBuffer | Uint8Array要搜索的内容。
byteOffsetnumber字节偏移量。若byteOffset为正数,则从0开始计算偏移量;如果为负数,则从末尾开始计算偏移量。默认值:this.length - 1。
encodingBufferEncoding字符编码格式。默认值:'utf8'。

返回值:

类型说明
number最后一次出现value值的索引。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from('this buffer is a buffer');
console.info(buf.lastIndexOf('this').toString());
// 输出结果:0
console.info(buf.lastIndexOf('buffer').toString());
// 输出结果:17

readBigInt64BE

readBigInt64BE(offset?: number): bigint

从指定的offset处读取有符号的大端序64位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 8。

返回值:

类型说明
bigint读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70,
  0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.info(buf.readBigInt64BE(0).toString());
// 输出结果:7161960797921896816

let buf1 = fastbuffer.allocUninitializedFromPool(8);
let result = buf1.writeBigInt64BE(BigInt(0x0102030405060708), 0);
console.info("result = " + result);
// 输出结果:result = 8

readBigInt64LE

readBigInt64LE(offset?: number): bigint

从指定的offset处读取有符号的小端序64位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 8,默认值:0。

返回值:

类型说明
bigint读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70,
  0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.info(buf.readBigInt64LE(0).toString());
// 输出结果:8100120198111388771

let buf1 = fastbuffer.allocUninitializedFromPool(8);
let result = buf1.writeBigInt64LE(BigInt(0xcafafecacefade), 0);
console.info("result = " + result);
// 输出结果:result = 8

readBigUInt64BE

readBigUInt64BE(offset?: number): bigint

从指定的offset处读取无符号的大端序64位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 8,默认值:0。

返回值:

类型说明
bigint读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70,
  0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.info(buf.readBigUInt64BE(0).toString());
// 输出结果:7161960797921896816
let buf1 = fastbuffer.allocUninitializedFromPool(8);
let result = buf1.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);
console.info("result = " + result);
// 输出结果:result = 8

readBigUInt64LE

readBigUInt64LE(offset?: number): bigint

从指定的offset处读取无符号的小端序64位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 8,默认值:0。

返回值:

类型说明
bigint读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70,
  0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.info(buf.readBigUInt64LE(0).toString());
// 输出结果:8100120198111388771

let buf1 = fastbuffer.allocUninitializedFromPool(8);
let result = buf1.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);
console.info("result = " + result);
// 输出结果:result = 8

readDoubleBE

readDoubleBE(offset?: number): number

从指定的offset处读取64位大端序双精度值。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 8,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.info(buf.readDoubleBE(0).toString());
// 输出结果:8.20788039913184e-304
let buf1 = fastbuffer.allocUninitializedFromPool(8);
let result = buf1.writeDoubleBE(123.456, 0);
console.info("result = " + result);
// 输出结果:result = 8

readDoubleLE

readDoubleLE(offset?: number): number

从指定的offset处读取64位小端序双精度值。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 8,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.info(buf.readDoubleLE(0).toString());
// 输出结果:5.447603722011605e-270
let buf1 = fastbuffer.allocUninitializedFromPool(8);
let result = buf1.writeDoubleLE(123.456, 0);
console.info("result = " + result);
// 输出结果:result = 8

readFloatBE

readFloatBE(offset?: number): number

从指定的offset处读取32位大端序浮点数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 4,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.info(buf.readFloatBE(0).toString());
// 输出结果:2.387939260590663e-38
let buf1 = fastbuffer.allocUninitializedFromPool(4);
let result = buf1.writeFloatBE(0xcabcbcbc, 0);
console.info("result = " + result);
// 输出结果:result = 4

readFloatLE

readFloatLE(offset?: number): number

从指定的offset处读取32位小端序浮点数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 4,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.info(buf.readFloatLE(0).toString());
// 输出结果:1.539989614439558e-36
let buf1 = fastbuffer.allocUninitializedFromPool(4);
let result = buf1.writeFloatLE(0xcabcbcbc, 0);
console.info("result = " + result);
// 输出结果:result = 4

readInt8

readInt8(offset?: number): number

从指定的offset处读取有符号的8位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 1,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 1. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([-1, 5]);
console.info(buf.readInt8(0).toString());
// 输出结果:-1
console.info(buf.readInt8(1).toString());
// 输出结果:5
let buf1 = fastbuffer.allocUninitializedFromPool(2);
let result = buf1.writeInt8(0x12);
console.info("result = " + result);
// 输出结果:result = 1

readInt16BE

readInt16BE(offset?: number): number

从指定的offset处读取有符号的大端序16位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 2,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 2. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0, 5]);
console.info(buf.readInt16BE(0).toString());
// 输出结果:5
let buf1 = fastbuffer.alloc(2);
let result = buf1.writeInt16BE(0x1234, 0);
console.info("result = " + result);
// 输出结果:result = 2

readInt16LE

readInt16LE(offset?: number): number

从指定的offset处读取有符号的小端序16位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 2,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 2. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0, 5]);
console.info(buf.readInt16LE(0).toString());
// 输出结果:1280
let buf1 = fastbuffer.alloc(2);
let result = buf1.writeInt16BE(0x1234, 0);
console.info("result = " + result);
// 输出结果:result = 2

readInt32BE

readInt32BE(offset?: number): number

从指定的offset处读取有符号的大端序32位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 4,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0, 0, 0, 5]);
console.info(buf.readInt32BE(0).toString());
// 输出结果:5
let buf1 = fastbuffer.alloc(4);
let result = buf1.writeInt32BE(0x12345678, 0);
console.info("result = " + result);
// 输出结果:result = 4

readInt32LE

readInt32LE(offset?: number): number

从指定的offset处读取有符号的小端序32位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 4,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0, 0, 0, 5]);
console.info(buf.readInt32LE(0).toString());
// 输出结果:83886080
let buf1 = fastbuffer.alloc(4);
let result = buf1.writeInt32BE(0x12345678, 0);
console.info("result = " + result);
// 输出结果:result = 4

readIntBE

readIntBE(offset: number, byteLength: number): number

从指定的offset处读取byteLength个字节,并将结果解释为支持最高48位精度的大端序、二进制补码有符号值。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - byteLength,默认值:0。
byteLengthnumber读取的字节数。取值范围:1 <= byteLength <= 6。

返回值:

类型说明
number读取的内容。当offset为小数时,返回undefined。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from("ab");
let num = buf.readIntBE(0, 1);
console.info(num.toString());
// 输出结果:97
let buf1 = fastbuffer.allocUninitializedFromPool(6);
let result = buf1.writeIntBE(0x123456789011, 0, 6);
console.info("result = " + result);
// 输出结果:result = 6

readIntLE

readIntLE(offset: number, byteLength: number): number

从指定的offset处读取byteLength个字节,并将结果解释为支持最高48位精度的小端序、二进制补码有符号值。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - byteLength,默认值:0。
byteLengthnumber读取的字节数。取值范围:1 <= byteLength <= 6。

返回值:

类型说明
number读取出的内容。当offset为小数时,返回undefined。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
console.info(buf.readIntLE(0, 6).toString(16));
// 输出结果:-546f87a9cbee
let buf1 = fastbuffer.allocUninitializedFromPool(6);
let result = buf1.writeIntLE(0x123456789011, 0, 6);
console.info("result = " + result);
// 输出结果:result = 6

readUInt8

readUInt8(offset?: number): number

offset处读取8位无符号整型数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 1,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 1. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([1, -2]);
console.info(buf.readUInt8(0).toString());
// 输出结果:1
console.info(buf.readUInt8(1).toString());
// 输出结果:254
let buf1 = fastbuffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt8(0x42);
console.info("result = " + result);
// 输出结果:result = 1

readUInt16BE

readUInt16BE(offset?: number): number

从指定的offset处读取无符号的大端序16位整数。

系统能力: SystemCapability.Utils.Lang

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 2,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 2. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x12, 0x34, 0x56]);
console.info(buf.readUInt16BE(0).toString(16));
// 输出结果:1234
console.info(buf.readUInt16BE(1).toString(16));
// 输出结果:3456
let buf1 = fastbuffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt16BE(0x1234, 0);
console.info("result = " + result);
// 输出结果:result = 2

readUInt16LE

readUInt16LE(offset?: number): number

从指定的offset处的buf读取无符号的小端序16位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 2,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 2. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x12, 0x34, 0x56]);
console.info(buf.readUInt16LE(0).toString(16));
// 输出结果:3412
console.info(buf.readUInt16LE(1).toString(16));
// 输出结果:5634
let buf1 = fastbuffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt16LE(0x1234, 0);
console.info("result = " + result);
// 输出结果:result = 2

readUInt32BE

readUInt32BE(offset?: number): number

从指定的offset处的buf读取无符号的大端序32位整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 4,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x12, 0x34, 0x56, 0x78]);
console.info(buf.readUInt32BE(0).toString(16));
// 输出结果:12345678
let buf1 = fastbuffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt32BE(0x12345678, 0);
console.info("result = " + result);
// 输出结果:result = 4

readUInt32LE

readUInt32LE(offset?: number): number

从指定的offset处的buf读取无符号的小端序32位整数。

系统能力: SystemCapability.Utils.Lang

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - 4,默认值:0。

返回值:

类型说明
number读取出的内容。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset].

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x12, 0x34, 0x56, 0x78]);
console.info(buf.readUInt32LE(0).toString(16));
// 输出结果:78563412
let buf1 = fastbuffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt32LE(0x12345678, 0);
console.info("result = " + result);
// 输出结果:result = 4

readUIntBE

readUIntBE(offset: number, byteLength: number): number

从指定的offset处的buf读取byteLength个字节,并将结果解释为支持最高48位精度的无符号大端序整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - byteLength,默认值:0。
byteLengthnumber要读取的字节数。读取的字节数。取值范围:1 <= byteLength <= 6。

返回值:

类型说明
number读取出的内容。当offset为小数时,返回undefined。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
console.info(buf.readUIntBE(0, 6).toString(16));
// 输出结果:1234567890ab
let buf1 = fastbuffer.allocUninitializedFromPool(4);
let result = buf1.writeUIntBE(0x13141516, 0, 4);
console.info("result = " + result);
// 输出结果:result = 4

readUIntLE

readUIntLE(offset: number, byteLength: number): number

从指定的offset处的buf读取byteLength个字节,并将结果解释为支持最高48位精度的无符号小端序整数。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。取值范围:0 <= offset <= this.length - byteLength,默认值:0。
byteLengthnumber读取的字节数。取值范围:1 <= byteLength <= 6。

返回值:

类型说明
number读取出的内容。当offset为小数时,返回undefined。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
console.info(buf.readUIntLE(0, 6).toString(16));
// 输出结果:ab9078563412
let buf1 = fastbuffer.allocUninitializedFromPool(4);
let result = buf1.writeUIntLE(0x13141516, 0, 4);
console.info("result = " + result);
// 输出结果:result = 4

subarray

subarray(start?: number, end?: number): FastBuffer

截取当前对象指定位置的数据并返回。

系统能力: SystemCapability.Utils.Lang

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

参数:

参数名类型必填说明
startnumber截取开始位置。默认值:0。
endnumber截取结束位置(不包含结束位置)。默认值:当前对象的字节长度。取值范围:start <= end <= this.length

返回值:

类型说明
FastBuffer返回新的FastBuffer对象。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.allocUninitializedFromPool(26);

for (let i = 0; i < 26; i++) {
  buf1.writeInt8(i + 97, i);
}
const buf2 = buf1.subarray(0, 3);
console.info(buf2.toString('ascii', 0, buf2.length));
// 输出结果: abc

swap16

swap16(): FastBuffer

将当前对象转换为无符号的16位整数数组,并交换字节顺序。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
FastBuffer交换之后的FastBuffer对象。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码

错误码ID错误信息
10200009The fastbuffer size must be a multiple of 16-bits.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.info(buf1.toString('hex'));
// 输出结果:0102030405060708
buf1.swap16();
console.info(buf1.toString('hex'));
// 输出结果:0201040306050807

swap32

swap32(): FastBuffer

将当前对象转换为无符号的32位整数数组,并交换字节顺序。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
FastBuffer交换之后的FastBuffer对象。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码

错误码ID错误信息
10200009The fastbuffer size must be a multiple of 32-bits.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.info(buf1.toString('hex'));
// 输出结果:0102030405060708
buf1.swap32();
console.info(buf1.toString('hex'));
// 输出结果:0403020108070605

swap64

swap64(): FastBuffer

将当前对象转换为无符号的64位整数数组,并交换字节顺序。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
FastBuffer交换之后的FastBuffer对象。

错误码:

以下错误码的详细介绍请参见语言基础类库错误码

错误码ID错误信息
10200009The fastbuffer size must be a multiple of 64-bits.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.info(buf1.toString('hex'));
// 输出结果:0102030405060708
buf1.swap64();
console.info(buf1.toString('hex'));
// 输出结果:0807060504030201

toJSON

toJSON(): Object

将Buffer转为JSON并返回。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

返回值:

类型说明
ObjectJSON对象。

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
let obj = buf1.toJSON();
console.info(JSON.stringify(obj));
// 输出结果: {"type":"FastBuffer","data":[1,2,3,4,5]}

toString

toString(encoding?: string, start?: number, end?: number): string

将当前对象中指定位置的数据转成指定编码格式的字符串并返回。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
encodingstring字符编码格式。默认值:'utf8'。
startnumber开始位置。默认值:0。
endnumber结束位置。默认值:Buffer.length。

返回值:

类型说明
string字符串。当start >= this.length或start > end时返回空字符串。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID错误信息
10200068The underlying ArrayBuffer is null or detach.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf1 = fastbuffer.allocUninitializedFromPool(26);
for (let i = 0; i < 26; i++) {
  buf1.writeInt8(i + 97, i);
}
console.info(buf1.toString('utf-8'));
// 输出结果: abcdefghijklmnopqrstuvwxyz

write

write(str: string, offset?: number, length?: number, encoding?: string): number

在FastBuffer对象的offset偏移处写入指定编码的字符串,写入的字节长度为length。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
strstring要写入Buffer的字符串。
offsetnumber偏移量。默认值:0。
lengthnumber最大字节长度。默认值:(this.length - offset)。
encodingstring字符编码。默认值:'utf8'。

返回值:

类型说明
number写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001Range error. Possible causes: The value of the parameter is not within the specified range.
10200068The underlying ArrayBuffer is null or detach.

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.alloc(256);
let len = buf.write('\u00bd + \u00bc = \u00be', 0);
console.info(`${len} bytes: ${buf.toString('utf-8', 0, len)}`);
// 输出结果: 12 bytes: ½ + ¼ = ¾

let buffer1 = fastbuffer.alloc(10);
let length = buffer1.write('abcd', 8);
console.info("length = " + length);
// 输出结果:length = 2

writeBigInt64BE

writeBigInt64BE(value: bigint, offset?: number): number

在FastBuffer对象的offset偏移处写入有符号的大端序64位BigInt型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuebigint写入Buffer的数据。取值范围:-INT64_MAX <= value <= INT64_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 8。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(8);
let result = buf.writeBigInt64BE(BigInt(0x0102030405060708), 0);
console.info("result = " + result);
// 输出结果:result = 8

writeBigInt64LE

writeBigInt64LE(value: bigint, offset?: number): number

在FastBuffer对象的offset偏移处写入有符号的小端序64位BigInt型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuebigint写入Buffer的数据。取值范围:-INT64_MAX <= value <= INT64_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 8。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(8);
let result = buf.writeBigInt64LE(BigInt(0x0102030405060708), 0);
console.info("result = " + result);
// 输出结果:result = 8

writeBigUInt64BE

writeBigUInt64BE(value: bigint, offset?: number): number

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

在FastBuffer对象的offset偏移处写入无符号的大端序64位BigUInt型数据。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuebigint写入Buffer的数据。取值范围:0 <= value <= UINT64_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 8。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(8);
let result = buf.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);
console.info("result = " + result);
// 输出结果:result = 8

writeBigUInt64LE

writeBigUInt64LE(value: bigint, offset?: number): number

在FastBuffer对象的offset偏移处写入无符号的小端序64位BigUInt型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuebigint写入Buffer的数据。取值范围:0 <= value <= UINT64_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 8。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(8);
let result = buf.writeBigUInt64LE(BigInt(0xdecafafecacefade), 0);
console.info("result = " + result);
// 输出结果:result = 8

writeDoubleBE

writeDoubleBE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入大端序的64位双浮点型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:-DOUBLE_MAX <= value <= DOUBLE_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 8。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(8);
let result = buf.writeDoubleBE(123.456, 0);
console.info("result = " + result);
// 输出结果:result = 8

writeDoubleLE

writeDoubleLE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入小端序的64位双浮点型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:-DOUBLE_MAX <= value <= DOUBLE_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 8。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(8);
let result = buf.writeDoubleLE(123.456, 0);
console.info("result = " + result);
// 输出结果:result = 8

writeFloatBE

writeFloatBE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入大端序的32位浮点型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:-FLOAT_MAX <= value <= FLOAT_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 4。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(8);
let result = buf.writeFloatBE(0xcafebabe, 0);
console.info("result = " + result);
// 输出结果:result = 4

writeFloatLE

writeFloatLE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入小端序的32位浮点型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:-FLOAT_MAX <= value <= FLOAT_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 4。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(8);
let result = buf.writeFloatLE(0xcafebabe, 0);
console.info("result = " + result);
// 输出结果:result = 4

writeInt8

writeInt8(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入8位有符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:-INT8_MAX <= value <= INT8_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 1。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(2);
let result = buf.writeInt8(2, 0);
console.info("result = " + result);
// 输出结果:result = 1
let result1 = buf.writeInt8(-2, 1);
console.info("result1 = " + result1);
// 输出结果:result1 = 2

writeInt16BE

writeInt16BE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入大端序的16位有符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:-INT16_MAX <= value <= INT16_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 2。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(2);
let result = buf.writeInt16BE(0x0102, 0);
console.info("result = " + result);
// 输出结果:result = 2

writeInt16LE

writeInt16LE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入小端序的16位有符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:-INT16_MAX <= value <= INT16_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 2。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(2);
let result = buf.writeInt16LE(0x0304, 0);
console.info("result = " + result);
// 输出结果:result = 2

writeInt32BE

writeInt32BE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入大端序的32位有符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:-INT32_MAX <= value <= INT32_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 4。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(4);
let result = buf.writeInt32BE(0x01020304, 0);
console.info("result = " + result);
// 输出结果:result = 4

writeInt32LE

writeInt32LE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入小端序的32位有符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:-INT32_MAX <= value <= INT32_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 4。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(4);
let result = buf.writeInt32LE(0x05060708, 0);
console.info("result = " + result);
// 输出结果:result = 4

writeIntBE

writeIntBE(value: number, offset: number, byteLength: number): number

在FastBuffer对象的offset偏移处写入大端序的有符号数据,字节长度为byteLength。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围取决于byteLength。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - byteLength。
byteLengthnumber要写入的字节数。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(6);
let result = buf.writeIntBE(0x1234567890ab, 0, 6);
console.info("result = " + result);
// 输出结果:result = 6

writeIntLE

writeIntLE(value: number, offset: number, byteLength: number): number

在FastBuffer对象的offset偏移处写入小端序的有符号数据,字节长度为byteLength。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围取决于byteLength。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - byteLength。
byteLengthnumber要写入的字节数。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(6);
let result = buf.writeIntLE(0x1234567890ab, 0, 6);
console.info("result = " + result);
// 输出结果:result = 6

writeUInt8

writeUInt8(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入8位无符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:0 <= value <= UINT8_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 1。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(4);
let result = buf.writeUInt8(0x3, 0);
console.info("result = " + result);
// 输出结果:result = 1
let result1 = buf.writeUInt8(0x4, 1);
console.info("result1 = " + result1);
// 输出结果:result1 = 2
let result2 = buf.writeUInt8(0x23, 2);
console.info("result2 = " + result2);
// 输出结果:result2 = 3
let result3 = buf.writeUInt8(0x42, 3);
console.info("result3 = " + result3);
// 输出结果:result3 = 4

writeUInt16BE

writeUInt16BE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入大端序的16位无符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:0 <= value <= UINT16_MAX。
offsetnumber偏移量。默认值为0。取值范围:0 <= offset <= this.length - 2。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(4);
let result = buf.writeUInt16BE(0xdead, 0);
console.info("result = " + result);
// 输出结果:result = 2
let result1 = buf.writeUInt16BE(0xbeef, 2);
console.info("result1 = " + result1);
// 输出结果:result1 = 4

writeUInt16LE

writeUInt16LE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入小端序的16位无符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:0 <= value <= UINT16_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 2。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(4);
let result = buf.writeUInt16LE(0xdead, 0);
console.info("result = " + result);
// 输出结果:result = 2
let result1 = buf.writeUInt16LE(0xbeef, 2);
console.info("result1 = " + result1);
// 输出结果:result1 = 4

writeUInt32BE

writeUInt32BE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入大端序的32位无符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围:0 <= value <= UINT32_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 4。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(4);
let result = buf.writeUInt32BE(0xfeedface, 0);
console.info("result = " + result);
// 输出结果:result = 4

writeUInt32LE

writeUInt32LE(value: number, offset?: number): number

在FastBuffer对象的offset偏移处写入小端序的32位无符号整型数据。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入FastBuffer对象的数据。取值范围:0 <= value <= UINT32_MAX。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - 4。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(4);
let result = buf.writeUInt32LE(0xfeedface, 0);
console.info("result = " + result);
// 输出结果:result = 4

writeUIntBE

writeUIntBE(value: number, offset: number, byteLength: number): number

在FastBuffer对象的offset偏移处写入大端序的无符号数据,字节长度为byteLength。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围取决于byteLength。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - byteLength。
byteLengthnumber要写入的字节数。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(6);
let result = buf.writeUIntBE(0x1234567890ab, 0, 6);
console.info("result = " + result);
// 输出结果:result = 6

writeUIntLE

writeUIntLE(value: number, offset: number, byteLength: number): number

在FastBuffer对象的offset偏移处写入小端序的无符号数据,字节长度为byteLength。

原子化服务API:从API version 20开始,该接口支持在原子化服务中使用。

系统能力: SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。取值范围取决于byteLength。
offsetnumber偏移量。默认值:0。取值范围:0 <= offset <= this.length - byteLength。
byteLengthnumber要写入的字节数。

返回值:

类型说明
number偏移量offset加上写入的字节数。

错误码:

以下错误码的详细介绍请参见通用错误码语言基础类库错误码

错误码ID错误信息
10200001The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param]

示例:

import { fastbuffer } from '@kit.ArkTS';

let buf = fastbuffer.allocUninitializedFromPool(6);
let result = buf.writeUIntLE(0x1234567890ab, 0, 6);
console.info("result = " + result);
// 输出结果:result = 6

你可能感兴趣的鸿蒙文章

harmony 鸿蒙ArkTS(方舟编程语言)

harmony 鸿蒙编译工具链错误码

harmony 鸿蒙Typescript Compiler错误码介绍

harmony 鸿蒙语言基础类库错误码

harmony 鸿蒙js-apis-arkts-collections

harmony 鸿蒙js-apis-arkts-decimal

harmony 鸿蒙@arkts.lang (ArkTS语言基础能力)

harmony 鸿蒙@arkts.utils (ArkTS工具库)

harmony 鸿蒙@ohos.util.ArrayList (线性容器ArrayList)

harmony 鸿蒙@ohos.buffer (Buffer)

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/5uMDPS