HarmonyOS API:@ohos.buffer (Buffer)

joytrian
发布于 2023-4-10 18:29
浏览
0收藏

版本:v3.1 Beta

@ohos.buffer (Buffer)

更新时间: 2023-02-17 09:19


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


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


说明

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

导入模块

import buffer from '@ohos.buffer';

BufferEncoding

表示支持的编码格式字符串。

系统能力: SystemCapability.Utils.Lang

编码格式

说明

'ascii'

表示ascii格式,不区分大小写。

'utf8'

表示utf8格式,不区分大小写。

'utf-8'

表示utf8格式,不区分大小写。

'utf16le'

表示utf16小端序格式,不区分大小写。

'ucs2'

表示utf16小端序格式,不区分大小写。

'ucs-2'

表示utf16小端序格式,不区分大小写。

'base64'

表示base64格式,不区分大小写。

'base64url'

表示base64格式,不区分大小写。

'latin1'

表示ascii格式,不区分大小写。

'binary'

表示二进制格式,不区分大小写。

'hex'

表示十六进制格式,不区分大小写。

buffer.alloc

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

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

size

number

指定的Buffer对象长度,单位:字节。

fill

string | Buffer | number

填充至新缓存区的值,默认值: 0。

encoding

​BufferEncoding​

编码格式(当fill为string时,才有意义)。 默认值: 'utf-8'。

返回值:

类型

说明

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

参数:

参数名

类型

必填

说明

size

number

指定的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

参数:

参数名

类型

必填

说明

size

number

指定的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

参数:

参数名

类型

必填

说明

string

string | Buffer | TypedArray | DataView | ArrayBuffer | SharedArrayBuffer

指定字符串。

encoding

​BufferEncoding​

编码格式。 默认值: 'utf-8'。

返回值:

类型

说明

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.concat

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

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

list

Buffer[] | Uint8Array[]

实例数组。

totalLength

number

需要复制的总字节长度。

返回值:

类型

说明

Buffer

返回新的Buffer对象。

错误码:

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

错误码ID

错误信息

10200001

The value of "totalLength" is out of range.

示例:

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

参数:

参数名

类型

必填

说明

array

number[]

指定数组。

返回值:

类型

说明

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

参数:

参数名

类型

必填

说明

arrayBuffer

ArrayBuffer | SharedArrayBuffer

实例对象。

byteOffset

number

字节偏移量,默认值: 0。

length

number

字节长度, 默认值: (arrayBuffer.byteLength - byteOffset)。

返回值:

类型

说明

Buffer

返回一个共享内存的Buffer对象。

错误码:

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

错误码ID

错误信息

10200001

The 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

参数:

参数名

类型

必填

说明

buffer

Buffer | Uint8Array

对象数据。

返回值:

类型

说明

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

参数:

参数名

类型

必填

说明

object

Object

支持Symbol.toPrimitive或valueOf()的对象。

offsetOrEncoding

number | string

字节偏移量或编码格式。

length

number

字节长度。

返回值:

类型

说明

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

参数:

参数名

类型

必填

说明

string

String

字符串

encoding

​BufferEncoding​

编码格式。 默认值: 'utf-8'。

返回值:

类型

说明

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

buffer.isBuffer

isBuffer(obj: Object): boolean

判断obj是否为Buffer。

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

obj

Object

判断对象

返回值:

类型

说明

boolean

如果obj是Buffer,则返回true,否则返回false。

示例:

import buffer from '@ohos.buffer';

buffer.isBuffer(buffer.alloc(10)); // true
buffer.isBuffer(buffer.from('foo')); // true
buffer.isBuffer('a string'); // false
buffer.isBuffer([]); // false
buffer.isBuffer(new Uint8Array(1024)); // false

buffer.isEncoding

isEncoding(encoding: string): boolean

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

encoding

string

编码格式。

返回值:

类型

说明

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.compare

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

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

buf1

Buffer | Uint8Array

待比较数组。

buf2

Buffer | Uint8Array

待比较数组。

返回值:

类型

说明

-1 | 0 | 1

如果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.transcode

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

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

source

Buffer | Uint8Array

实例对象。

fromEnc

string

当前编码。

toEnc

string

目标编码。

返回值:

类型

说明

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

名称

类型

可读

可写

说明

length

number

Buffer对象的字节长度。

buffer

ArrayBuffer

ArrayBuffer对象。

byteOffset

number

当前Buffer所在内存池的偏移量。

错误码:

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

错误码ID

错误信息

10200013

Cannot 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

参数:

参数名

类型

必填

说明

target

Buffer | Uint8Array

要比较的实例对象。

targetStart

number

target实例中开始的偏移量。 默认值: 0。

targetEnd

number

target实例中结束的偏移量(不包含结束位置)。 默认值: 目标对象的字节长度。

sourceStart

number

this实例中开始的偏移量。 默认值: 0。

sourceEnd

number

this实例中结束的偏移量(不包含结束位置)。 默认值: 当前对象的字节长度。

返回值:

类型

说明

number

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

错误码:

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

错误码ID

错误信息

10200001

The 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

参数:

参数名

类型

必填

说明

target

Buffer | Uint8Array

要复制到的Buffer或Uint8Array实例。

targetStart

number

target实例中开始写入的偏移量。 默认值: 0。

sourceStart

number

this实例中开始复制的偏移量。 默认值: 0。

sourceEnd

number

this实例中结束复制的偏移量(不包含结束位置)。 默认值: 当前对象的字节长度。

返回值:

类型

说明

number

复制的字节总长度。

错误码:

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

错误码ID

错误信息

10200001

The 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

返回值:

类型

说明

number

表示迭代器的key值。

number

表示迭代器的value值。

示例:

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

参数:

参数名

类型

必填

说明

otherBuffer

Uint8Array | Buffer

比较的目标对象。

返回值:

类型

说明

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

参数:

参数名

类型

必填

说明

value

string | Buffer | Uint8Array | number

用于填充的值。

offset

number

起始偏移量。 默认值: 0。

end

number

结束偏移量(不包含结束位置)。 默认值: 当前对象的字节长度。

encoding

​BufferEncoding​

字符编码格式(value为string才有意义)。 默认值: 'utf-8'。

返回值:

类型

说明

Buffer

返回一个填充后的Buffer对象。

错误码:

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

错误码ID

错误信息

10200001

The 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

参数:

参数名

类型

必填

说明

value

string | number | Buffer | Uint8Array

要搜索的内容。

byteOffset

number

字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。

encoding

​BufferEncoding​

字符编码格式。 默认值: 'utf-8'。

返回值:

类型

说明

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

参数:

参数名

类型

必填

说明

value

string | number | Buffer | Uint8Array

要查找的内容。

byteOffset

number

字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。

encoding

​BufferEncoding​

字符编码格式。 默认值: 'utf-8'。

返回值:

类型

说明

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());
}

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());
}

lastIndexOf

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

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

value

string | number | Buffer | Uint8Array

要搜索的内容。

byteOffset

number

字节偏移量。 如果为负数,则从末尾开始计算偏移量。 默认值: 0。

encoding

​BufferEncoding​

字符编码格式。 默认值: 'utf-8'。

返回值:

类型

说明

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

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

bigint

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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);
buf1.writeBigInt64BE(0x0102030405060708n, 0);

readBigInt64LE

readBigInt64LE(offset?: number): bigint

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

bigint

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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);
buf1.writeBigInt64BE(0x0102030405060708n, 0);

readBigUInt64BE

readBigUInt64BE(offset?: number): bigint

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

bigint

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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);
buf1.writeBigUInt64BE(0xdecafafecacefaden, 0);

readBigUInt64LE

readBigUInt64LE(offset?: number): bigint

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

bigint

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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);
buf1.writeBigUInt64BE(0xdecafafecacefaden, 0);

readDoubleBE

readDoubleBE(offset?: number): number

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

number

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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);
buf1.writeDoubleBE(123.456, 0);

readDoubleLE

readDoubleLE(offset?: number): number

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

number

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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);
buf1.writeDoubleLE(123.456, 0);

readFloatBE

readFloatBE(offset?: number): number

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

number

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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);
buf1.writeFloatBE(0xcabcbcbc, 0);

readFloatLE

readFloatLE(offset?: number): number

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

number

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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);
buf1.writeFloatLE(0xcabcbcbc, 0);

readInt8

readInt8(offset?: number): number

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

number

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';

let buf = buffer.from([-1, 5]);
console.log(buf.readInt8(0).toString());    // 打印: -1
console.log(buf.readInt8(1).toString());    // 打印: 5

let buf1 = buffer.allocUninitializedFromPool(2);
buf1.writeInt8(0x12);

readInt16BE

readInt16BE(offset?: number): number

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

number

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';

let buf = buffer.from([0, 5]);
console.log(buf.readInt16BE(0).toString());    // 打印: 5

let buf1 = buffer.alloc(2);
buf1.writeInt16BE(0x1234, 0);

readInt16LE

readInt16LE(offset?: number): number

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

number

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The value of "offset" is out of range.

示例:

import buffer from '@ohos.buffer';

let buf = buffer.from([0, 5]);
console.log(buf.readInt16LE(0).toString());    // 打印: 1280

let buf1 = buffer.alloc(2);
buf1.writeInt16BE(0x1234, 0);

readInt32BE

readInt32BE(offset?: number): number

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

number

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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());    // 打印: 5

let buf1 = buffer.alloc(4);
buf1.writeInt32BE(0x12345678, 0);

readInt32LE

readInt32LE(offset?: number): number

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。默认值: 0。

返回值:

类型

说明

number

读取出的内容。

错误码:

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

错误码ID

错误信息

10200001

The 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());    // 打印: 83886080

let buf1 = buffer.alloc(4);
buf1.writeInt32BE(0x12345678, 0);

readIntBE

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

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

系统能力: SystemCapability.Utils.Lang

参数:

参数名

类型

必填

说明

offset

number

偏移量。 默认值: 0。

byteLength

number

读取的字节数。

返回值:

类型

说明

number

读取的内容。

错误码:

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

错误码ID

错误信息

10200001

The value of "[offset/byteLength]" is out of range.

示例:

import buffer from '@ohos.buffer';

let buf = buffer.from("ab");
let num = buf.readIntBE(0, 1);
console.log(num.toString()); // 97

let buf1 = buffer.allocUninitializedFromPool(6);
buf1.writeIntBE(0x123456789011, 0, 6);


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-buffer-0000001478181693-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001478181693__导入模块​

已于2023-4-10 18:29:40修改
收藏
回复
举报
回复
    相关推荐