OpenHarmony语言基础类库【@ohos.buffer (Buffer)】

 @ohos.buffer (Buffer)

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

推荐使用场景:  可用于处理大量二进制数据,图片处理、文件接收上传等。

icon-note.gif

 说明:

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

导入模块

import buffer from '@ohos.buffer';

鸿蒙开发>鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

搜狗高速浏览器截图20240326151547.png

BufferEncoding

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

系统能力:  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'表示十六进制格式。

buffer.alloc

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

创建一定字节长度的Buffer对象,并初始化。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
sizenumber指定的Buffer对象长度,单位:字节。
fillstringBuffernumber填充至新缓存区的值,默认值: 0。
encoding[BufferEncoding]编码格式(当fill为string时,才有意义)。 默认值: 'utf8'。

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.alloc(5);
let buf2 = buffer.alloc(5, 'a');
let buf3 = buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');

buffer.allocUninitializedFromPool

allocUninitializedFromPool(size: number): Buffer

创建指定大小未被初始化的Buffer对象。内存从缓冲池分配。 创建的Buffer的内容未知,需要使用[fill]函数来初始化Buffer对象。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
sizenumber指定的Buffer对象长度,单位:字节。

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(10);
buf.fill(0);

buffer.allocUninitialized

allocUninitialized(size: number): Buffer

创建指定大小未被初始化的Buffer实例。内存不从缓冲池分配。 创建的Buffer的内容未知,需要使用[fill]函数来初始化Buffer对象。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
sizenumber指定的Buffer对象长度,单位:字节。

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitialized(10);
buf.fill(0);

buffer.byteLength

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
stringstringBufferTypedArrayDataViewArrayBufferSharedArrayBuffer指定字符串。
encoding[BufferEncoding]编码格式。 默认值: 'utf8'。

返回值:

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

示例:

import buffer from '@ohos.buffer';let str = '\u00bd + \u00bc = \u00be';
console.log(`${str}: ${str.length} characters, ${buffer.byteLength(str, 'utf-8')} bytes`);
// 打印: ½ + ¼ = ¾: 9 characters, 12 bytes

buffer.compare

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
buf1BufferUint8Array待比较数组。
buf2BufferUint8Array待比较数组。

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from('1234');
let buf2 = buffer.from('0123');
let res = buf1.compare(buf2);console.log(Number(res).toString()); // 打印 1

buffer.concat

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
listBuffer[]Uint8Array[]实例数组。
totalLengthnumber需要复制的总字节长度。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from("1234");
let buf2 = buffer.from("abcd");
let buf = buffer.concat([buf1, buf2]);
console.log(buf.toString('hex')); // 3132333461626364

buffer.from

from(array: number[]): Buffer;

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

系统能力:  SystemCapability.Utils.Lang

参数:

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

返回值:

类型说明
Buffer新的Buffer对象。

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
console.log(buf.toString('hex')); // 627566666572

buffer.from

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
arrayBufferArrayBufferSharedArrayBuffer实例对象。
byteOffsetnumber字节偏移量,默认值: 0。
lengthnumber字节长度, 默认值: (arrayBuffer.byteLength - byteOffset)。

返回值:

类型说明
Buffer返回一个共享内存的Buffer对象。

错误码:

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

错误码ID错误信息
10200001The value of "[byteOffset/length]" is out of range.

示例:

import buffer from '@ohos.buffer';let ab = new ArrayBuffer(10);
let buf = buffer.from(ab, 0, 2);

buffer.from

from(buffer: Buffer | Uint8Array): Buffer

创建并复制buffer数据到新的Buffer对象并返回。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
bufferBufferUint8Array对象数据。

返回值:

类型说明
Buffer新的Buffer对象。

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from('buffer');
let buf2 = buffer.from(buf1);

buffer.from

from(object: Object, offsetOrEncoding: number | string, length: number): Buffer

根据指定的object类型数据,创建新的Buffer对象。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
objectObject支持Symbol.toPrimitive或valueOf()的对象。
offsetOrEncodingnumberstring字节偏移量或编码格式。
lengthnumber字节长度。

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.from(new String('this is a test'), 'utf8', 14);

buffer.from

from(string: String, encoding?: BufferEncoding): Buffer

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
stringString字符串
encoding[BufferEncoding]编码格式。 默认值: 'utf8'。

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from('this is a test');
let buf2 = buffer.from('7468697320697320612074c3a97374', 'hex');console.log(buf1.toString());    // 打印: this is a test
console.log(buf2.toString()); // 打印: this is a test

[](zh-cn/application-dev/reference/apis/js-apis-buffer.md · OpenHarmony/docs - Gitee.com)buffer.isBuffer

isBuffer(obj: Object): boolean

判断obj是否为Buffer。

系统能力:  SystemCapability.Utils.Lang

参数:

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

返回值:

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

示例:

import buffer from '@ohos.buffer';let result = buffer.isBuffer(buffer.alloc(10)); // true
let result1 = buffer.isBuffer(buffer.from('foo')); // true
let result2 = buffer.isBuffer('a string'); // false
let result3 = buffer.isBuffer([]); // false
let result4 = buffer.isBuffer(new Uint8Array(1024)); // false

buffer.isEncoding

isEncoding(encoding: string): boolean

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

系统能力:  SystemCapability.Utils.Lang

参数:

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

返回值:

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

示例:

import buffer from '@ohos.buffer';console.log(buffer.isEncoding('utf-8').toString());    // 打印: true
console.log(buffer.isEncoding('hex').toString());    // 打印: true
console.log(buffer.isEncoding('utf/8').toString());    // 打印: false
console.log(buffer.isEncoding('').toString());    // 打印: false

buffer.transcode

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

将给定的Buffer或Uint8Array对象从一种字符编码重新编码为另一种。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
sourceBufferUint8Array实例对象。
fromEncstring当前编码。
toEncstring目标编码。

返回值:

类型说明
Buffer根据当前编码转换成目标编码,并返回一个新的buffer实例。

示例:

import buffer from '@ohos.buffer';let buf = buffer.alloc(50);
let newBuf = buffer.transcode(buffer.from('€'), 'utf-8', 'ascii');
console.log(newBuf.toString('ascii'));

Buffer

属性

系统能力:  SystemCapability.Utils.Lang

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

错误码:

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

错误码ID错误信息
10200013Cannot set property ${propertyName} of Buffer which has only a getter.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from("1236");
console.log(JSON.stringify(buf.length));
let arrayBuffer = buf.buffer;
console.log(JSON.stringify(new Uint8Array(arrayBuffer)));
console.log(JSON.stringify(buf.byteOffset));

compare

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
targetBufferUint8Array要比较的实例对象。
targetStartnumbertarget实例中开始的偏移量。 默认值: 0。
targetEndnumbertarget实例中结束的偏移量(不包含结束位置)。 默认值: 目标对象的字节长度。
sourceStartnumberthis实例中开始的偏移量。 默认值: 0。
sourceEndnumberthis实例中结束的偏移量(不包含结束位置)。 默认值: 当前对象的字节长度。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "[targetStart/targetEnd/sourceStart/sourceEnd]" is out of range.

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
let buf2 = buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]);console.log(buf1.compare(buf2, 5, 9, 0, 4).toString());    // 打印: 0
console.log(buf1.compare(buf2, 0, 6, 4).toString());    // 打印: -1
console.log(buf1.compare(buf2, 5, 6, 5).toString());    // 打印: 1

copy

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
targetBufferUint8Array要复制到的Buffer或Uint8Array实例。
targetStartnumbertarget实例中开始写入的偏移量。 默认值: 0。
sourceStartnumberthis实例中开始复制的偏移量。 默认值: 0。
sourceEndnumberthis实例中结束复制的偏移量(不包含结束位置)。 默认值: 当前对象的字节长度。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "[targetStart/sourceStart/sourceEnd]" is out of range.

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.allocUninitializedFromPool(26);
let buf2 = buffer.allocUninitializedFromPool(26).fill('!');for (let i = 0; i < 26; i++) {buf1[i] = i + 97;
}buf1.copy(buf2, 8, 16, 20);
console.log(buf2.toString('ascii', 0, 25));
// 打印: !!!!!!!!qrst!!!!!!!!!!!!!

entries

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

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

系统能力:  SystemCapability.Utils.Lang

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.from('buffer');
for (let pair of buf.entries()) {console.log(pair.toString());
}

equals

equals(otherBuffer: Uint8Array | Buffer): boolean

比较this实例和otherBuffer实例是否相等。

系统能力:  SystemCapability.Utils.Lang

参数:

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

返回值:

类型说明
boolean相等则返回true,否则返回false。

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from('ABC');
let buf2 = buffer.from('414243', 'hex');
let buf3 = buffer.from('ABCD');console.log(buf1.equals(buf2).toString());    // 打印: true
console.log(buf1.equals(buf3).toString());    // 打印: false

fill

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestringBufferUint8Arraynumber用于填充的值。
offsetnumber起始偏移量。 默认值: 0。
endnumber结束偏移量(不包含结束位置)。 默认值: 当前对象的字节长度。
encoding[BufferEncoding]字符编码格式(value为string才有意义)。 默认值: 'utf8'。

返回值:

类型说明
Buffer返回一个填充后的Buffer对象。

错误码:

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

错误码ID错误信息
10200001The value of "[offset/end]" is out of range.

示例:

import buffer from '@ohos.buffer';let b = buffer.allocUninitializedFromPool(50).fill('h');
console.log(b.toString());

includes

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestringnumberBufferUint8Array要搜索的内容。
byteOffsetnumber字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。
encoding[BufferEncoding]字符编码格式。 默认值: 'utf8'。

返回值:

类型说明
boolean存在为true,否则为false。

示例:

import buffer from '@ohos.buffer';let buf = buffer.from('this is a buffer');
console.log(buf.includes('this').toString());    // 打印: true
console.log(buf.includes('be').toString());    // 打印: false

indexOf

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

查找当前对象中第一次出现value的索引,如果不包含value,则为-1。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestringnumberBufferUint8Array要查找的内容。
byteOffsetnumber字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。
encoding[BufferEncoding]字符编码格式。 默认值: 'utf8'。

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.from('this is a buffer');
console.log(buf.indexOf('this').toString());    // 打印: 0
console.log(buf.indexOf('is').toString());        // 打印: 2

keys

keys(): IterableIterator<number>

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

系统能力:  SystemCapability.Utils.Lang

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.from('buffer');
for (const key of buf.keys()) {console.log(key.toString());
}

lastIndexOf

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuestringnumberBufferUint8Array要搜索的内容。
byteOffsetnumber字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。
encoding[BufferEncoding])字符编码格式。 默认值: 'utf8'。

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.from('this buffer is a buffer');
console.log(buf.lastIndexOf('this').toString());    // 打印: 0
console.log(buf.lastIndexOf('buffer').toString());    // 打印: 17

readBigInt64BE

readBigInt64BE(offset?: number): bigint

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.log(buf.readBigInt64BE(0).toString());let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeBigInt64BE(BigInt(0x0102030405060708), 0);

readBigInt64LE

readBigInt64LE(offset?: number): bigint

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.log(buf.readBigInt64LE(0).toString());let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeBigInt64BE(BigInt(0x0102030405060708), 0);

readBigUInt64BE

readBigUInt64BE(offset?: number): bigint

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.log(buf.readBigUInt64BE(0).toString());let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);

readBigUInt64LE

readBigUInt64LE(offset?: number): bigint

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.log(buf.readBigUInt64LE(0).toString());let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);

readDoubleBE

readDoubleBE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.log(buf.readDoubleBE(0).toString());let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeDoubleBE(123.456, 0);

readDoubleLE

readDoubleLE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.log(buf.readDoubleLE(0).toString());let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeDoubleLE(123.456, 0);

readFloatBE

readFloatBE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.log(buf.readFloatBE(0).toString());let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeFloatBE(0xcabcbcbc, 0);

readFloatLE

readFloatLE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.log(buf.readFloatLE(0).toString());let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeFloatLE(0xcabcbcbc, 0);

readInt8

readInt8(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([-1, 5]);
console.log(buf.readInt8(0).toString());    // 打印: 0
console.log(buf.readInt8(1).toString());    // 打印: 5let buf1 = buffer.allocUninitializedFromPool(2);
let result = buf1.writeInt8(0x12);

readInt16BE

readInt16BE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0, 5]);
console.log(buf.readInt16BE(0).toString());    // 打印: 5let buf1 = buffer.alloc(2);
let result = buf1.writeInt16BE(0x1234, 0);

readInt16LE

readInt16LE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0, 5]);
console.log(buf.readInt16LE(0).toString());    // 打印: 1280let buf1 = buffer.alloc(2);
let result = buf1.writeInt16BE(0x1234, 0);

readInt32BE

readInt32BE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0, 0, 0, 5]);
console.log(buf.readInt32BE(0).toString());    // 打印: 5let buf1 = buffer.alloc(4);
let result = buf1.writeInt32BE(0x12345678, 0);

readInt32LE

readInt32LE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0, 0, 0, 5]);
console.log(buf.readInt32LE(0).toString());    // 打印: 83886080let buf1 = buffer.alloc(4);
let result = buf1.writeInt32BE(0x12345678, 0);

readIntBE

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。 默认值: 0。
byteLengthnumber读取的字节数。

返回值:

类型说明
number读取的内容。

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.from("ab");
let num = buf.readIntBE(0, 1);
console.log(num.toString()); // 97let buf1 = buffer.allocUninitializedFromPool(6);
let result = buf1.writeIntBE(0x123456789011, 0, 6);

readIntLE

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。 默认值: 0。
byteLengthnumber读取的字节数。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
console.log(buf.readIntLE(0, 6).toString(16));let buf1 = buffer.allocUninitializedFromPool(6);
let result = buf1.writeIntLE(0x123456789011, 0, 6);

readUInt8

readUInt8(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([1, -2]);
console.log(buf.readUInt8(0).toString());
console.log(buf.readUInt8(1).toString());let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt8(0x42);

readUInt16BE

readUInt16BE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x12, 0x34, 0x56]);
console.log(buf.readUInt16BE(0).toString(16));
console.log(buf.readUInt16BE(1).toString(16));let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt16BE(0x1234, 0);

readUInt16LE

readUInt16LE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x12, 0x34, 0x56]);
console.log(buf.readUInt16LE(0).toString(16));
console.log(buf.readUInt16LE(1).toString(16));let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt16LE(0x1234, 0);

readUInt32BE

readUInt32BE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x12, 0x34, 0x56, 0x78]);
console.log(buf.readUInt32BE(0).toString(16));let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt32BE(0x12345678, 0);

readUInt32LE

readUInt32LE(offset?: number): number

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x12, 0x34, 0x56, 0x78]);
console.log(buf.readUInt32LE(0).toString(16));let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt32LE(0x12345678, 0);

readUIntBE

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。 默认值: 0。
byteLengthnumber要读取的字节数。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
console.log(buf.readUIntBE(0, 6).toString(16));let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUIntBE(0x13141516, 0, 4);

readUIntLE

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
offsetnumber偏移量。 默认值: 0。
byteLengthnumber要读取的字节数。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
console.log(buf.readUIntLE(0, 6).toString(16));let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUIntLE(0x13141516, 0, 4);

subarray

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

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

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.allocUninitializedFromPool(26);for (let i = 0; i < 26; i++) {buf1[i] = i + 97;
}
const buf2 = buf1.subarray(0, 3);
console.log(buf2.toString('ascii', 0, buf2.length));
// 打印: abc

swap16

swap16(): Buffer

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

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
Buffer交换之后的Buffer实例。

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.log(buf1.toString('hex'));    // 打印: 0102030405060708buf1.swap16();
console.log(buf1.toString('hex'));    // 打印: 0201040306050807

swap32

swap32(): Buffer

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

系统能力:  SystemCapability.Utils.Lang

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.log(buf1.toString('hex'));    // 打印: 0102030405060708buf1.swap32();
console.log(buf1.toString('hex'));    // 打印: 0403020108070605

swap64

swap64(): Buffer

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

系统能力:  SystemCapability.Utils.Lang

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.log(buf1.toString('hex'));    // 打印: 0102030405060708
buf1.swap64();
console.log(buf1.toString('hex'));    // 打印: 0807060504030201

toJSON

toJSON(): Object

将Buffer转为JSON并返回。

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
ObjectJSON对象。

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
let obj = buf1.toJSON();
console.log(JSON.stringify(obj));
// 打印: {"type":"Buffer","data":[1,2,3,4,5]}

toString

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

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

返回值:

类型说明
string字符串。

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.allocUninitializedFromPool(26);
for (let i = 0; i < 26; i++) {buf1[i] = i + 97;
}
console.log(buf1.toString('utf-8'));
// 打印: abcdefghijklmnopqrstuvwxyz

values

values(): IterableIterator<number>

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

系统能力:  SystemCapability.Utils.Lang

返回值:

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

示例:

import buffer from '@ohos.buffer';let buf1 = buffer.from('buffer');
for (let value of buf1.values()) {console.log(value.toString());
}

write

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

从Buffer对象的offset偏移写入指定编码的字符串str,写入的字节长度为length。

系统能力:  SystemCapability.Utils.Lang

参数:

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

返回值:

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

错误码:

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

错误码ID错误信息
10200001The value of "[offset/length]" is out of range.

示例:

import buffer from '@ohos.buffer';let buf = buffer.alloc(256);
let len = buf.write('\u00bd + \u00bc = \u00be', 0);
console.log(`${len} bytes: ${buf.toString('utf-8', 0, len)}`);
// 打印: 12 bytes: ½ + ¼ = ¾let buffer1 = buffer.alloc(10);
let length = buffer1.write('abcd', 8);

writeBigInt64BE

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

从Buffer对象的offset偏移写入有符号的大端序64位BigInt型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuebigint写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeBigInt64BE(BigInt(0x0102030405060708), 0);

writeBigInt64LE

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

从Buffer对象的offset偏移写入有符号的小端序64位BigInt型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuebigint写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeBigInt64LE(BigInt(0x0102030405060708), 0);

writeBigUInt64BE

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

从Buffer对象的offset偏移写入无符号的大端序64位BigUInt型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuebigint写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);

writeBigUInt64LE

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

从Buffer对象的offset偏移写入无符号的小端序64位BigUInt型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuebigint写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeBigUInt64LE(BigInt(0xdecafafecacefade), 0);

writeDoubleBE

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

从Buffer对象的offset偏移写入大端序的64位双浮点型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

以下错误码的详细介绍请参见[语言基础类库错误码]()。

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeDoubleBE(123.456, 0);

writeDoubleLE

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

从Buffer对象的offset偏移写入小端序的64位双浮点型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

以下错误码的详细介绍请参见[语言基础类库错误码]()。

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeDoubleLE(123.456, 0);

writeFloatBE

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

从Buffer对象的offset偏移写入大端序的32位浮点型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeFloatBE(0xcafebabe, 0);

writeFloatLE

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

从Buffer对象的offset偏移写入小端序的32位浮点型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeFloatLE(0xcafebabe, 0);

writeInt8

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

从Buffer对象的offset偏移写入8位有符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(2);
let result = buf.writeInt8(2, 0);
let result1 = buf.writeInt8(-2, 1);

writeInt16BE

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

从Buffer对象的offset偏移写入大端序的16位有符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(2);
let result = buf.writeInt16BE(0x0102, 0);

writeInt16LE

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

从Buffer对象的offset偏移写入小端序的16位有符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(2);
let result = buf.writeInt16LE(0x0304, 0);

writeInt32BE

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

从Buffer对象的offset偏移写入大端序的32位有符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeInt32BE(0x01020304, 0);

writeInt32LE

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

从Buffer对象的offset偏移写入小端序的32位有符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeInt32LE(0x05060708, 0);

writeIntBE

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。
byteLengthnumber要写入的字节数。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(6);
let result = buf.writeIntBE(0x1234567890ab, 0, 6);

writeIntLE

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。
byteLengthnumber要写入的字节数。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(6);
let result = buf.writeIntLE(0x1234567890ab, 0, 6);

writeUInt8

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

从Buffer对象的offset偏移写入8位无符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt8(0x3, 0);
let result1 = buf.writeUInt8(0x4, 1);
let result2 = buf.writeUInt8(0x23, 2);
let result3 = buf.writeUInt8(0x42, 3);

writeUInt16BE

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

从Buffer对象的offset偏移写入大端序的16位无符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值为0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt16BE(0xdead, 0);
let result1 = buf.writeUInt16BE(0xbeef, 2);

writeUInt16LE

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

从Buffer对象的offset偏移写入小端序的16位无符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt16LE(0xdead, 0);
let result1 = buf.writeUInt16LE(0xbeef, 2);

writeUInt32BE

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

从Buffer对象的offset偏移写入大端序的32位无符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt32BE(0xfeedface, 0);

writeUInt32LE

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

从Buffer对象的offset偏移写入小端序的32位无符号整型数据value。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer对象的数字。
offsetnumber偏移量。 默认值: 0。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt32LE(0xfeedface, 0);

writeUIntBE

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。
byteLengthnumber要写入的字节数。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(6);
let result = buf.writeUIntBE(0x1234567890ab, 0, 6);

writeUIntLE

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
valuenumber写入Buffer的数据。
offsetnumber偏移量。 默认值: 0。
byteLengthnumber要写入的字节数。

返回值:

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

错误码:

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

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

示例:

import buffer from '@ohos.buffer';let buf = buffer.allocUninitializedFromPool(6);
let result = buf.writeUIntLE(0x1234567890ab, 0, 6);

Blob

属性

系统能力:  SystemCapability.Utils.Lang

名称类型可读可写说明
sizenumberBlob实例的总字节大小。
typestringBlob实例的内容类型。

constructor

constructor(sources: string[] | ArrayBuffer[] | TypedArray[] | DataView[] | Blob[] , options?: Object)

Blob的构造函数。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
sourcesstring[]ArrayBuffer[]TypedArray[]DataView[]Blob[]Blob实例的数据源。
optionsObjectoptions: - endings:含义为结束符'\n'的字符串如何被输出,为'transparent'或'native'。native代表行结束符会跟随系统。'transparent'代表会保持Blob中保存的结束符不变。此参数非必填,默认值为'transparent'。 - type:Blob内容类型。其目的是让类型传达数据的MIME媒体类型,但是不执行类型格式的验证。此参数非必填,默认参数为''。

示例:

import buffer from '@ohos.buffer';let blob = new buffer.Blob(['a', 'b', 'c']);
let blob1 = new buffer.Blob(['a', 'b', 'c'], {endings:'native', type: 'MIME'});

arrayBuffer

arrayBuffer(): Promise<ArrayBuffer>

将Blob中的数据放入到ArrayBuffer中,并返回一个Promise。

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
Promise<ArrayBuffer>Promise对象,返回包含Blob数据的ArrayBuffer。

示例:

let blob = new buffer.Blob(['a', 'b', 'c']);
let pro = blob.arrayBuffer();
pro.then(val => {let uintarr = new Uint8Array(val);console.log(uintarr.toString());
});

slice

slice(start?: number, end?: number, type?: string): Blob

创建并返回一个复制原Blob对象中指定数据长度的Blob新对象。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
startnumber起始位置。默认值为0。
endnumber结束位置。默认值为原Blob对象中的数据长度。
typestring内容类型。默认值为''。

返回值:

类型说明
Blob新的Blob实例对象。

示例:

let blob = new buffer.Blob(['a', 'b', 'c']);
let blob2 = blob.slice(0, 2);
let blob3 = blob.slice(0, 2, "MIME");

text

text(): Promise<string>

使用UTF8进行解码并返回一个文本。使用Promise异步回调。

系统能力:  SystemCapability.Utils.Lang

返回值:

类型说明
Promise<string>Promise对象,返回包含以UTF8解码的文本。

示例:

let blob = new buffer.Blob(['a', 'b', 'c']);
let pro = blob.text();
pro.then(val => {console.log(val);
});

鸿蒙Next核心技术分享

1、鸿蒙基础知识←《鸿蒙NEXT星河版开发学习文档》

2、鸿蒙ArkUI←《鸿蒙NEXT星河版开发学习文档》

3、鸿蒙进阶技术←《鸿蒙NEXT星河版开发学习文档》

 4、鸿蒙就业高级技能←《鸿蒙NEXT星河版开发学习文档》 

 5、鸿蒙多媒体技术←《鸿蒙NEXT星河版开发学习文档》 

6、鸿蒙南向驱动开发←《鸿蒙NEXT星河版开发学习文档》  

7、鸿蒙南向内核设备开发←《鸿蒙NEXT星河版开发学习文档》  

 8、鸿蒙系统裁剪与移植←《鸿蒙NEXT星河版开发学习文档》  


http://www.ppmy.cn/news/1433374.html

相关文章

从零学算法134

134.加油站 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 gas …

redis单线程模型

工作原理 在Redis中&#xff0c;当两个客户端同时发送相同的请求时&#xff0c;Redis采用单线程模型来处理所有的客户端请求&#xff0c;会依次处理这些请求&#xff0c;每个请求都会按照先后顺序被执行&#xff0c;不会同时处理多个请求。使得Redis能够避免多线程并发访问数据…

S-Edge网关:柔性部署,让物联网接入更统一

S-Edge网关是什么&#xff1f; 网关是在实际物理世界与虚拟网络世界相连接的交叉点&#xff0c;为了让这个交叉点尽可能的复用&#xff0c;无需每种设备都配套一种连接方式&#xff0c;边缘网关主要就是用于传感器等物理设备与网络实现数据交互的通用设备&#xff0c;也称为物…

Python 环境管理工具:Conda

目录 一、Conda介绍 二、安装Conda 2.1 下载Anaconda 安装程序 2.2 执行安装 2.3 初始化Conda 2.4 配置镜像源 三、Conda常用命令 3.1 环境管理命令 3.2 包管理命令 3.3 配置相关命令 3.4 其他常用命令 一、Conda介绍 Conda 是一个开源的跨平台包…

ubuntu 23.04 Dell T3660 听歌没声音的尝试

首先&#xff0c;还是要安装PulseAudio Volume Control sudo apt install pulseaudio 或者 snap install pulseaudio 装了pulseaudio可以在configure和playback间切换选择用哪个声卡输出声音&#xff0c;一般选Stereo Analog Output 网上其他办法也可以试试&#xff0c;比…

HashTable ,HashMap,和ConcurrentHashMap的区别

这里呢&#xff0c;在我们学习多线程之前&#xff0c;HashMap,在数据结构中我们都已经非常熟悉了&#xff0c;HashMap&#xff0c;有key和value&#xff0c;key和value都是一一对应的关系。key允许为null。 而当我们学习过线程之后呢&#xff0c;HashMap是线程不安全的。 而Has…

【LeetCode热题100】【多维动态规划】最小路径和

题目链接&#xff1a;64. 最小路径和 - 力扣&#xff08;LeetCode&#xff09; 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 经典动态规…

【iOS】类与对象底层探索

文章目录 前言一、编译源码二、探索对象本质三、objc_setProperty 源码探索四、类 & 类结构分析isa指针是什么类的分析元类元类的说明 五、著名的isa走位 & 继承关系图六、objc_class & objc_objectobjc_class结构superClassbitsclass_rw_tclass_ro_tro与rw的区别c…

银河麒麟V10 SP1服务器客户端定时数据同步

银河麒麟V10 SP1服务器客户端定时数据同步 0.概述 当前只测试了将数据从客户端往服务端推送&#xff0c;两个客户端分别推送不同的数据 1.环境 三台电脑均为银河麒麟V10SP1桌面操作系统 服务器IP&#xff1a;192.168.1.51 用户名&#xff1a;wlh 客户端IP&#xff1a;192…

什么是架构?说说我的理解

什么是架构了&#xff1f;其实就是根据企业的具体情况给出的一个解决方案&#xff0c;并且这个架构能升级&#xff0c;如果企业的流量突然暴增&#xff0c;也能适应变化&#xff0c;这才是好的架构&#xff0c;一个项目是采用单体架构了&#xff1f;还是采用前后端分离&#xf…

elment ui 中el-input标签中@input初始化赋值触发问题

遇见问题记录起来&#xff0c;方便以后隔了很久再次遇到。 elment ui 中el-input标签中input初始化赋值时会触发到input方法 <el-input-numberv-model"scope.row.discount_value":controls"false":min"0":precision"0"input"…

练习题(2024/4/23)

1分发糖果 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#xff0c;计算并返回…

解密数字化工业革命:数字孪生工厂和信息集成

数字孪生工厂与信息集成&#xff01; 虚拟工厂是将实体工厂映射过来&#xff0c;具备仿真、管理和控制实体工厂关键要素功能的模型化平台。数字孪生技术将虚拟工厂的概念不断深入&#xff0c;利用物联网技术和监控技术加强信息管理服务&#xff0c;通过合理计划排程&#xff0c…

设计模式(四):单例模式

设计模式&#xff08;四&#xff09;&#xff1a;单例模式 1. 单例模式的介绍2. 单例模式的类图3. 单例模式的实现3.1 懒汉式&#xff08;线程不安全&#xff09;3.2 懒汉式&#xff08;线程安全&#xff09;3.3 饿汉式3.4 静态内部类3.5 枚举 1. 单例模式的介绍 单例模式&…

git常见命令(成长版)

ps&#xff1a;所谓成长版就是后续可能还会添加命令&#xff1a; 1.删除本地分支&#xff1a; git branch -d 分支名 2.拉取代码后默认master分支&#xff0c;切换到线上其他分支&#xff1a; &#xff08;1&#xff09;查看线上所有分支&#xff1a; git branch -a &#…

ES6 - 语法糖

ES6 引入了许多新的语法糖和方法&#xff0c;其中一些包括&#xff1a; 箭头函数&#xff1a;() > {} 模板字符串&#xff1a;${variable} 解构赋值&#xff1a;const { prop } object 类和继承&#xff1a;class MyClass extends ParentClass {} Promise&#xff1a;…

【华为OD机试】精准核酸检测【C卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群。现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹交叉…

【详细讲解Edge使用心得与深度探索】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

【神经网络基础辨析】什么是神经网络的主干(backbone)、颈部(neck)和头部(head)网络

在神经网络中&#xff0c;通常将网络分为三个部分&#xff1a;骨干网络&#xff08;Backbone&#xff09;、颈部网络&#xff08;Neck&#xff09;、和头部网络&#xff08;Head&#xff09;。 骨干网络&#xff08;Backbone&#xff09; 骨干网络通常是神经网络的主要部分&a…

立即刷新导致请求的response没有来得及加载造成的this request has no response data available

1、前端递归调用后端接口 const startProgress () > {timer.value setInterval(() > {if (progress.value < 100) {time.value--;progress.value Math.ceil(100 / wait_time.value);} else {clearInterval(timer.value);progress.value 0;timer.value null;time.…