A Buffer object represents a byte sequence of a fixed length. It is used to store binary data.
Recommended use case: Use Buffer when you need to process images and a large amount of binary data, and receive or upload files.
The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
type BufferEncoding = 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'
Enumerates the supported encoding formats.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
| Type | Description |
|---|---|
| 'ascii' | ASCII format. |
| 'utf8' | UTF-8 format. |
| 'utf-8' | UTF-8 format. |
| 'utf16le' | UTF-16LE format. |
| 'ucs2' | Alias of UTF-16LE. |
| 'ucs-2' | Alias of UTF-16LE. |
| 'base64' | Base64 format. |
| 'base64url' | Base64URL format. |
| 'latin1' | Alias of iso-8859-1, which is backward compatible with the ASCII format. |
| 'binary' | Binary format. |
| 'hex' | Hexadecimal format. |
alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer
Creates and initializes a Buffer object of the specified length.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| size | number | Yes | Size of the Buffer object to create, in bytes. |
| fill | string | Buffer | number | No | Value to be filled in the buffer. The default value is 0. |
| encoding | BufferEncoding | No | Encoding format (valid only when fill is a string). The default value is 'utf8'. |
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object created. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { buffer, JSON } from '@kit.ArkTS';
let buf1 = buffer.alloc(5);
console.info(JSON.stringify(buf1)); // {"type":"Buffer","data":[0,0,0,0,0]}
let buf2 = buffer.alloc(5, 'a');
console.info(JSON.stringify(buf2)); // {"type":"Buffer","data":[97,97,97,97,97]}
let buf3 = buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
console.info(JSON.stringify(buf3)); // {"type":"Buffer","data":[104,101,108,108,111,32,119,111,114,108,100]} allocUninitializedFromPool(size: number): Buffer
Creates a Buffer object of the specified size from the buffer pool, without initializing it.
You need to use fill() to initialize the Buffer object created.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| size | number | Yes | Size of the Buffer object to create, in bytes. |
Return value
| Type | Description |
|---|---|
| Buffer | Uninitialized Buffer object. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { buffer, JSON } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(10);
buf.fill(0);
console.info(JSON.stringify(buf)); // {"type":"Buffer","data":[0,0,0,0,0,0,0,0,0,0]} allocUninitialized(size: number): Buffer
Creates a Buffer object of the specified size, without initializing it. This API does not allocate memory from the buffer pool.
You need to use fill() to initialize the Buffer object created.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| size | number | Yes | Size of the Buffer object to create, in bytes. |
Return value
| Type | Description |
|---|---|
| Buffer | Uninitialized Buffer object. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
Example
import { buffer, JSON } from '@kit.ArkTS';
let buf = buffer.allocUninitialized(10);
buf.fill(0);
console.info(JSON.stringify(buf)); // {"type":"Buffer","data":[0,0,0,0,0,0,0,0,0,0]} byteLength(string: string | Buffer | TypedArray | DataView | ArrayBuffer | SharedArrayBuffer, encoding?: BufferEncoding): number
Obtains the number of bytes of a string based on the encoding format.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| string | string | Buffer | TypedArray | DataView | ArrayBuffer | SharedArrayBuffer | Yes | Target string. |
| encoding | BufferEncoding | No | Encoding format. The default value is 'utf8'. |
Return value
| Type | Description |
|---|---|
| number | Number of bytes of the string. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let str = '\u00bd + \u00bc = \u00be';
console.info(`${str}: ${str.length} characters, ${buffer.byteLength(str, 'utf-8')} bytes`);
// Output: ½ + ¼ = ¾: 9 characters, 12 bytes compare(buf1: Buffer | Uint8Array, buf2: Buffer | Uint8Array): -1 | 0 | 1
Compares two Buffer objects. This API is used for sorting Buffer objects.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| buf1 | Buffer | Uint8Array | Yes | Buffer object to compare. |
| buf2 | Buffer | Uint8Array | Yes | Buffer object to compare. |
Return value
| Type | Description |
|---|---|
| -1 | 0 | 1 | Returns 0 if buf1 is the same as buf2. Returns 1 if buf1 comes after buf2 when sorted. Returns -1 if buf1 comes before buf2 when sorted. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.from('1234');
let buf2 = buffer.from('0123');
let res = buffer.compare(buf1, buf2);
console.info(Number(res).toString());
// Output: 1 concat(list: Buffer[] | Uint8Array[], totalLength?: number): Buffer
Concatenates an array of Buffer objects of the specified length into a new object.
System capability: SystemCapability.Utils.Lang
Atomic service API: This API can be used in atomic services since API version 11.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| list | Buffer[] | Uint8Array[] | Yes | Array of objects to concatenate. |
| totalLength | number | No | Total length of bytes to be copied. The default value is 0. |
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object created. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "length" is out of range. It must be >= 0 and <= uint32 max. Received value is: [length] |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.from("1234");
let buf2 = buffer.from("abcd");
let buf = buffer.concat([buf1, buf2]);
console.info(buf.toString('hex'));
// Output: 3132333461626364 from(array: number[]): Buffer
Creates a Buffer object with the specified array.
System capability: SystemCapability.Utils.Lang
Atomic service API: This API can be used in atomic services since API version 11.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| array | number[] | Yes | Array to create a Buffer object. |
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object created. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
console.info(buf.toString('hex'));
// Output: 627566666572 from(arrayBuffer: ArrayBuffer | SharedArrayBuffer, byteOffset?: number, length?: number): Buffer
Creates a Buffer object of the specified length that shares memory with ArrayBuffer.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| arrayBuffer | ArrayBuffer | SharedArrayBuffer | Yes | Instance object. |
| byteOffset | number | No | Byte offset. The default value is 0. |
| length | number | No | Length of the Buffer object to create, in bytes. The default value is arrayBuffer.byteLength minus byteOffset. If null is passed, the byte length is 0. |
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object created. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[byteOffset/length]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [byteOffset/length] |
Example
import { buffer, JSON } from '@kit.ArkTS';
let ab = new ArrayBuffer(10);
let buf = buffer.from(ab, 0, 2);
console.info(JSON.stringify(buf)); // {"type":"Buffer","data":[0,0]} from(buffer: Buffer | Uint8Array): Buffer
Copies the data of a passed Buffer object to create a new Buffer object and returns the new one.
Creates a Buffer object based on the memory of a passed Uint8Array object and returns the new object, maintaining the memory association of the data.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| buffer | Buffer | Uint8Array | Yes | Target object. |
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object created. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
// Create a Buffer object of the Buffer type.
let buf1 = buffer.from('buffer');
let buf2 = buffer.from(buf1);
// Create a Buffer object of the Uint8Array type to ensure memory sharing between objects.
let uint8Array = new Uint8Array(10);
let buf3 = buffer.from(uint8Array);
buf3.fill(1);
console.info("uint8Array:", uint8Array);
// Output: 1,1,1,1,1,1,1,1,1,1 from(object: Object, offsetOrEncoding: number | string, length: number): Buffer
Creates a Buffer object based on the specified object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| object | Object | Yes | Object that supports Symbol.toPrimitive or valueOf(). |
| offsetOrEncoding | number | string | Yes | Byte offset or encoding format. |
| length | number | Yes | Length of the Buffer object to create, in bytes. This parameter is valid only when the return value of valueOf() of object is ArrayBuffer. Value range: 0 <= length <= ArrayBuffer.byteLength. Error 10200001 is reported if a value outside this range is reported. In other cases, you can set this parameter to any value of the number type. This parameter does not affect the result. |
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object created. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer, JSON } from '@kit.ArkTS';
let buf = buffer.from(new String('this is a test'), 'utf8', 14);
console.info(JSON.stringify(buf)); // {"type":"Buffer","data":[116,104,105,115,32,105,115,32,97,32,116,101,115,116]} from(string: String, encoding?: BufferEncoding): Buffer
Creates a Buffer object based on a string in the given encoding format.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| string | String | Yes | String. |
| encoding | BufferEncoding | No | Encoding format. The default value is 'utf8'. |
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object created. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.from('this is a test');
let buf2 = buffer.from('7468697320697320612074c3a97374', 'hex');
console.info(buf1.toString());
// Output: this is a test
console.info(buf2.toString());
// Output: this is a tést isBuffer(obj: Object): boolean
Checks whether the specified object is a Buffer object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| obj | Object | Yes | Object to check. |
Return value
| Type | Description |
|---|---|
| boolean | Check result. The value true is returned if the object is a Buffer object; otherwise, false is returned. |
Example
import { buffer } from '@kit.ArkTS';
let result = buffer.isBuffer(buffer.alloc(10)); // 10: buffer size
console.info("result = " + result);
// Output: result = true
let result1 = buffer.isBuffer(buffer.from('foo'));
console.info("result1 = " + result1);
// Output: result1 = true
let result2 = buffer.isBuffer('a string');
console.info("result2 = " + result2);
// Output: result2 = false
let result3 = buffer.isBuffer([]);
console.info("result3 = " + result3);
// Output: result3 = false
let result4 = buffer.isBuffer(new Uint8Array(1024));
console.info("result4 = " + result4);
// Output: result4 = false isEncoding(encoding: string): boolean
Checks whether the encoding format is supported.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| encoding | string | Yes | Encoding format. |
Return value
| Type | Description |
|---|---|
| boolean | Check result. The value true is returned if the encoding format is supported; otherwise, false is returned. |
Example
import { buffer } from '@kit.ArkTS';
console.info(buffer.isEncoding('utf-8').toString());
// Output: true
console.info(buffer.isEncoding('hex').toString());
// Output: true
console.info(buffer.isEncoding('utf/8').toString());
// Output: false
console.info(buffer.isEncoding('').toString());
// Output: false transcode(source: Buffer | Uint8Array, fromEnc: string, toEnc: string): Buffer
Transcodes a Buffer or Uint8Array object from one encoding format to another.
System capability: SystemCapability.Utils.Lang
Atomic service API: This API can be used in atomic services since API version 11.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| source | Buffer | Uint8Array | Yes | Instance object. |
| fromEnc | string | Yes | Current encoding format. For details about the supported formats, see BufferEncoding. |
| toEnc | string | Yes | Target encoding format. For details about the supported formats, see BufferEncoding. |
Return value
| Type | Description |
|---|---|
| Buffer | New Buffer object in the target encoding format. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let newBuf = buffer.transcode(buffer.from('€'), 'utf-8', 'ascii');
console.info("newBuf = " + newBuf.toString('ascii'));
// Output: newBuf = , System capability: SystemCapability.Utils.Lang
Atomic service API: This API can be used in atomic services since API version 11.
| Name | Type | Read-Only | Optional | Description |
|---|---|---|---|---|
| length | number | Yes | No | Length of the Buffer object, in bytes. |
| buffer | ArrayBuffer | Yes | No | ArrayBuffer object. |
| byteOffset | number | Yes | No | Offset of the Buffer object in the memory pool. - When a Buffer is created using a memory pool (for example, using allocUninitializedFromPool to create a Buffer or using buffer.from() to pass a string whose length plus the offset of the current memory pool is less than 4 KB), the offset relative to the memory pool is returned. - When a Buffer allocates memory directly (for example, using alloc), the return value is 0. |
Error codes
For details about the error codes, see Utils Error Codes.
| ID | Error Message |
|---|---|
| 10200013 | ${propertyName} cannot be set for the buffer that has only a getter. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from("12345678");
console.info(JSON.stringify(buf.length));
// Output: 8
let arrayBuffer = buf.buffer;
console.info(JSON.stringify(new Uint8Array(arrayBuffer)));
// Output: {"0":49,"1":50,"2":51,"3":52,"4":53,"5":54,"6":55,"7":56}
console.info(JSON.stringify(buf.byteOffset));
// Output: 0
let buf1 = buffer.from("abcd");
console.info(JSON.stringify(buf1.byteOffset));
// Output: 8 compare(target: Buffer | Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): -1 | 0 | 1
Compares this Buffer object with another object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| target | Buffer | Uint8Array | Yes | Target Buffer object to compare. |
| targetStart | number | No | Offset to the start of the data to compare in the target Buffer object. The default value is 0. |
| targetEnd | number | No | Offset to the end of the data to compare in the target Buffer object (not inclusive). The default value is the length of the target Buffer object. |
| sourceStart | number | No | Offset to the start of the data to compare in this Buffer object. The default value is 0. |
| sourceEnd | number | No | Offset to the end of the data to compare in this Buffer object (not inclusive). The default value is the length of this Buffer object. |
Return value
| Type | Description |
|---|---|
| number | Comparison result. The value 0 is returned if the two Buffer objects are the same; 1 is returned if this object comes after the target object when sorted; -1 is returned if this object comes before the target object when sorted. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[targetStart/targetEnd/sourceStart/sourceEnd]" is out of range. It must be >= 0 and <= [right range]. Received value is: [targetStart/targetEnd/sourceStart/sourceEnd] |
Example
import { buffer } from '@kit.ArkTS';
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.info(buf1.compare(buf2, 5, 9, 0, 4).toString());
// Output: 0
console.info(buf1.compare(buf2, 0, 6, 4).toString());
// Output: -1
console.info(buf1.compare(buf2, 5, 6, 5).toString());
// Output: 1 copy(target: Buffer| Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number
Copies data at the specified position in this Buffer object to the specified position in another Buffer object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| target | Buffer | Uint8Array | Yes | Buffer or Uint8Array object to which data is copied. |
| targetStart | number | No | Offset to the start position in the target object where data is copied. The default value is 0. |
| sourceStart | number | No | Offset to the start position in this Buffer object where data is copied. The default value is 0. |
| sourceEnd | number | No | Offset to the end position in this Buffer object (not inclusive). The default value is the length of this Buffer object. |
Return value
| Type | Description |
|---|---|
| number | Total length of the data copied, in bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[targetStart/sourceStart/sourceEnd]" is out of range. It must be >= 0. Received value is: [targetStart/sourceStart/sourceEnd] |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.allocUninitializedFromPool(26);
let buf2 = buffer.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));
// Output: !!!!!!!!qrst!!!!!!!!!!!!! entries(): IterableIterator<[number, number]>
Creates and returns an iterator that contains key-value pairs of this Buffer object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Return value
| Type | Description |
|---|---|
| IterableIterator<[number, number]> | Iterator that contains the key and value, both of which are of the number type. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from('buffer');
let pair = buf.entries();
let next: IteratorResult<Object[]> = pair.next();
while (!next.done) {
console.info("buffer: " + next.value);
/*
Output: buffer: 0,98
buffer: 1,117
buffer: 2,102
buffer: 3,102
buffer: 4,101
buffer: 5,114
*/
next = pair.next();
} equals(otherBuffer: Uint8Array | Buffer): boolean
Checks whether this Buffer object is the same as another Buffer object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| otherBuffer | Uint8Array | Buffer | Yes | Buffer object to compare. |
Return value
| Type | Description |
|---|---|
| boolean | Check result. The value true is returned if the two objects are the same; otherwise, false is returned. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.from('ABC');
let buf2 = buffer.from('414243', 'hex');
let buf3 = buffer.from('ABCD');
console.info(buf1.equals(buf2).toString());
// Output: true
console.info(buf1.equals(buf3).toString());
// Output: false fill(value: string | Buffer | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): Buffer
Fills this Buffer object at the specified position. By default, data is filled cyclically.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | string | Buffer | Uint8Array | number | Yes | Value to fill. |
| offset | number | No | Offset to the start position in this Buffer object where data is filled. The default value is 0. |
| end | number | No | Offset to the end position in this Buffer object (not inclusive). The default value is the length of this Buffer object. |
| encoding | BufferEncoding | No | Encoding format (valid only when value is a string). The default value is 'utf8'. |
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object filled with the specified value. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[offset/end]" is out of range. It must be >= 0 and <= [right range]. Received value is: [offset/end] |
Example
import { buffer } from '@kit.ArkTS';
let b = buffer.allocUninitializedFromPool(50).fill('h');
console.info(b.toString());
// Output: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh includes(value: string | number | Buffer | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): boolean
Checks whether this Buffer object contains the specified value.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | string | number | Buffer | Uint8Array | Yes | Value to match. |
| byteOffset | number | No | Number of bytes to skip before starting to check data. If the offset is a negative number, data is checked from the end of the Buffer object. The default value is 0. |
| encoding | BufferEncoding | No | Encoding format (valid only when value is a string). The default value is 'utf8'. |
Return value
| Type | Description |
|---|---|
| boolean | Check result. The value true is returned if the object contains the specified value; otherwise, false is returned. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from('this is a buffer');
console.info(buf.includes('this').toString());
// Output: true
console.info(buf.includes('be').toString());
// Output: false indexOf(value: string | number | Buffer | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number
Obtains the index of the first occurrence of the specified value in this Buffer object. If no match is found, -1 is returned.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | string | number | Buffer | Uint8Array | Yes | Value to match. |
| byteOffset | number | No | Number of bytes to skip before starting to check data. If the offset is a negative number, data is checked from the end of the Buffer object. The default value is 0. |
| encoding | BufferEncoding | No | Encoding format (valid only when value is a string). The default value is 'utf8'. |
Return value
| Type | Description |
|---|---|
| number | Index obtained. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from('this is a buffer');
console.info(buf.indexOf('this').toString());
// Output: 0
console.info(buf.indexOf('is').toString());
// Output: 2 keys(): IterableIterator<number>
Creates and returns an iterator that contains the keys of this Buffer object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Return value
| Type | Description |
|---|---|
| IterableIterator<number> | Iterator created. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from('buffer');
let keys = buf.keys();
for (const key of keys) {
console.info(key.toString());
}
/*
Output: 0
1
2
3
4
5
*/ lastIndexOf(value: string | number | Buffer | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number
Obtains the index of the last occurrence of the specified value in this Buffer object. If no match is found, -1 is returned.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | string | number | Buffer | Uint8Array | Yes | Value to match. |
| byteOffset | number | No | Number of bytes to skip before starting to check data. If the offset is a negative number, data is checked from the end of the Buffer object. The default value is the length of this Buffer object. |
| encoding | BufferEncoding | No | Encoding format (valid only when value is a string). The default value is 'utf8'. |
Return value
| Type | Description |
|---|---|
| number | Index obtained. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from('this buffer is a buffer');
console.info(buf.lastIndexOf('this').toString());
// Output: 0
console.info(buf.lastIndexOf('buffer').toString());
// Output: 17 readBigInt64BE(offset?: number): bigint
Reads a 64-bit, big-endian, signed big integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| bigint | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70,
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.info(buf.readBigInt64BE(0).toString());
// Output: 7161960797921896816
let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeBigInt64BE(BigInt(0x0102030405060708), 0);
console.info("result = " + result);
// Output: result = 8 readBigInt64LE(offset?: number): bigint
Reads a 64-bit, little-endian, signed big integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| bigint | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70,
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.info(buf.readBigUInt64LE(0).toString());
// Output: 8100120198111388771
let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);
console.info("result = " + result);
// Output: result = 8 readBigUInt64BE(offset?: number): bigint
Reads a 64-bit, big-endian, unsigned big integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| bigint | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70,
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.info(buf.readBigUInt64BE(0).toString());
// Output: 7161960797921896816
let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);
console.info("result = " + result);
// Output: result = 8 readBigUInt64LE(offset?: number): bigint
Reads a 64-bit, little-endian, unsigned big integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| bigint | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x70,
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78]);
console.info(buf.readBigUInt64LE(0).toString());
// Output: 8100120198111388771
let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);
console.info("result = " + result);
// Output: result = 8 readDoubleBE(offset?: number): number
Reads a 64-bit, big-endian, double-precision floating-point number from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.info(buf.readDoubleBE(0).toString());
// Output: 8.20788039913184e-304
let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeDoubleBE(123.456, 0);
console.info("result = " + result);
// Output: result = 8 readDoubleLE(offset?: number): number
Reads a 64-bit, little-endian, double-precision floating-point number from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.info(buf.readDoubleLE(0).toString());
// Output: 5.447603722011605e-270
let buf1 = buffer.allocUninitializedFromPool(8);
let result = buf1.writeDoubleLE(123.456, 0);
console.info("result = " + result);
// Output: result = 8 readFloatBE(offset?: number): number
Reads a 32-bit, big-endian, single-precision floating-point number from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.info(buf.readFloatBE(0).toString());
// Output: 2.387939260590663e-38
let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeFloatBE(0xcabcbcbc, 0);
console.info("result = " + result);
// Output: result = 4 readFloatLE(offset?: number): number
Reads a 32-bit, little-endian, single-precision floating-point number from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
console.info(buf.readFloatLE(0).toString());
// Output: 1.539989614439558e-36
let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeFloatLE(0xcabcbcbc, 0);
console.info("result = " + result);
// Output: result = 4 readInt8(offset?: number): number
Reads an 8-bit signed integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 1 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 1. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([-1, 5]);
console.info(buf.readInt8(0).toString());
// Output: 0
console.info(buf.readInt8(1).toString());
// Output: 5
let buf1 = buffer.allocUninitializedFromPool(2);
let result = buf1.writeInt8(0x12);
console.info("result = " + result);
// Output: result = 1 readInt16BE(offset?: number): number
Reads a 16-bit, big-endian, signed integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 2 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 2. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0, 5]);
console.info(buf.readInt16BE(0).toString());
// Output: 5
let buf1 = buffer.alloc(2);
let result = buf1.writeInt16BE(0x1234, 0);
console.info("result = " + result);
// Output: result = 2 readInt16LE(offset?: number): number
Reads a 16-bit, little-endian, signed integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 2 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 2. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0, 5]);
console.info(buf.readInt16LE(0).toString());
// Output: 1280
let buf1 = buffer.alloc(2);
let result = buf1.writeInt16BE(0x1234, 0);
console.info("result = " + result);
// Output: result = 2 readInt32BE(offset?: number): number
Reads a 32-bit, big-endian, signed integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0, 0, 0, 5]);
console.info(buf.readInt32BE(0).toString());
// Output: 5
let buf1 = buffer.alloc(4);
let result = buf1.writeInt32BE(0x12345678, 0);
console.info("result = " + result);
// Output: result = 4 readInt32LE(offset?: number): number
Reads a 32-bit, little-endian, signed integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1.Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0, 0, 0, 5]);
console.info(buf.readInt32LE(0).toString());
// Output: 83886080
let buf1 = buffer.alloc(4);
let result = buf1.writeInt32BE(0x12345678, 0);
console.info("result = " + result);
// Output: result = 4 readIntBE(offset: number, byteLength: number): number
Reads the specified number of bytes from this Buffer object at the specified offset, and interprets the result as a big-endian, two's complement signed value that supports up to 48 bits of precision.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | Yes | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - byteLength |
| byteLength | number | Yes | Number of bytes to read. Value range: 1 <= byteLength <= 6 |
Return value
| Type | Description |
|---|---|
| number | Data read. If the offset is a decimal, undefined is returned. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from("ab");
let num = buf.readIntBE(0, 1);
console.info(num.toString());
// Output: 97
let buf1 = buffer.allocUninitializedFromPool(6);
let result = buf1.writeIntBE(0x123456789011, 0, 6);
console.info("result = " + result);
// Output: result = 6 readIntLE(offset: number, byteLength: number): number
Reads the specified number of bytes from this Buffer object at the specified offset and interprets the result as a little-endian, two's complement signed value that supports up to 48 bits of precision.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | Yes | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - byteLength |
| byteLength | number | Yes | Number of bytes to read. Value range: 1 <= byteLength <= 6 |
Return value
| Type | Description |
|---|---|
| number | Data read. If the offset is a decimal, undefined is returned. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
console.info(buf.readIntLE(0, 6).toString(16));
// Output: -546f87a9cbee
let buf1 = buffer.allocUninitializedFromPool(6);
let result = buf1.writeIntLE(0x123456789011, 0, 6);
console.info("result = " + result);
// Output: result = 6 readUInt8(offset?: number): number
Reads an 8-bit unsigned integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 1 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 1. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([1, -2]);
console.info(buf.readUInt8(0).toString());
// Output: 1
console.info(buf.readUInt8(1).toString());
// Output: 0
let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt8(0x42);
console.info("result = " + result);
// Output: result = 1 readUInt16BE(offset?: number): number
Reads a 16-bit, big-endian, unsigned integer from this Buffer object at the specified offset.
System capability: SystemCapability.Utils.Lang
Atomic service API: This API can be used in atomic services since API version 11.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 2 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 2. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x12, 0x34, 0x56]);
console.info(buf.readUInt16BE(0).toString(16));
// Output: 1234
console.info(buf.readUInt16BE(1).toString(16));
// Output: 3456
let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt16BE(0x1234, 0);
console.info("result = " + result);
// Output: result = 2 readUInt16LE(offset?: number): number
Reads a 16-bit, little-endian, unsigned integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 2 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 2. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x12, 0x34, 0x56]);
console.info(buf.readUInt16LE(0).toString(16));
// Output: 3412
console.info(buf.readUInt16LE(1).toString(16));
// Output: 5634
let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt16LE(0x1234, 0);
console.info("result = " + result);
// Output: result = 2 readUInt32BE(offset?: number): number
Reads a 32-bit, big-endian, unsigned integer from this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x12, 0x34, 0x56, 0x78]);
console.info(buf.readUInt32BE(0).toString(16));
// Output: 12345678
let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt32BE(0x12345678, 0);
console.info("result = " + result);
// Output: result = 4 readUInt32LE(offset?: number): number
Reads a 32-bit, little-endian, unsigned integer from this Buffer object at the specified offset.
System capability: SystemCapability.Utils.Lang
Atomic service API: This API can be used in atomic services since API version 11.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Data read. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x12, 0x34, 0x56, 0x78]);
console.info(buf.readUInt32LE(0).toString(16));
// Output: 78563412
let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUInt32LE(0x12345678, 0);
console.info("result = " + result);
// Output: result = 4 readUIntBE(offset: number, byteLength: number): number
Reads the specified number of bytes from this Buffer object at the specified offset, and interprets the result as an unsigned, big-endian integer that supports up to 48 bits of precision.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | Yes | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - byteLength |
| byteLength | number | Yes | Number of bytes to read. Value range: 1 <= byteLength <= 6 |
Return value
| Type | Description |
|---|---|
| number | Data read. If the offset is a decimal, undefined is returned. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
console.info(buf.readUIntBE(0, 6).toString(16));
// Output: 1234567890ab
let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUIntBE(0x13141516, 0, 4);
console.info("result = " + result);
// Output: result = 4 readUIntLE(offset: number, byteLength: number): number
Reads the specified number of bytes from this Buffer object at the specified offset, and interprets the result as an unsigned, little-endian integer that supports up to 48 bits of precision.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| offset | number | Yes | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - byteLength |
| byteLength | number | Yes | Number of bytes to read. Value range: 1 <= byteLength <= 6 |
Return value
| Type | Description |
|---|---|
| number | Data read. If the offset is a decimal, undefined is returned. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
console.info(buf.readUIntLE(0, 6).toString(16));
// Output: ab9078563412
let buf1 = buffer.allocUninitializedFromPool(4);
let result = buf1.writeUIntLE(0x13141516, 0, 4);
console.info("result = " + result);
// Output: result = 4 subarray(start?: number, end?: number): Buffer
Truncates this Buffer object from the specified position to create a new Buffer object.
System capability: SystemCapability.Utils.Lang
Atomic service API: This API can be used in atomic services since API version 11.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| start | number | No | Offset to the start position in this Buffer object where data is truncated. The default value is 0. |
| end | number | No | Offset to the end position in this Buffer object (not inclusive). The default value is the length of this Buffer object. If null is passed, an empty Buffer is returned. |
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object created. When the value of start or end is less than 0, an empty buffer is returned. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.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));
// Output: abc swap16(): Buffer
Converts this Buffer object into an array of unsigned 16-bit integers and swaps the byte order in place.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object swapped. |
Error codes
For details about the error codes, see Utils Error Codes.
| ID | Error Message |
|---|---|
| 10200009 | The buffer size must be a multiple of 16-bits. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.info(buf1.toString('hex'));
// Output: 0102030405060708
buf1.swap16();
console.info(buf1.toString('hex'));
// Output: 0201040306050807 swap32(): Buffer
Converts this Buffer object into an array of unsigned 32-bit integers and swaps the byte order in place.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object swapped. |
Error codes
For details about the error codes, see Utils Error Codes.
| ID | Error Message |
|---|---|
| 10200009 | The buffer size must be a multiple of 32-bits. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.info(buf1.toString('hex'));
// Output: 0102030405060708
buf1.swap32();
console.info(buf1.toString('hex'));
// Output: 0403020108070605 swap64(): Buffer
Converts this Buffer object into an array of unsigned 64-bit integers and swaps the byte order in place.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Return value
| Type | Description |
|---|---|
| Buffer | Buffer object swapped. |
Error codes
For details about the error codes, see Utils Error Codes.
| ID | Error Message |
|---|---|
| 10200009 | The buffer size must be a multiple of 64-bits. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
console.info(buf1.toString('hex'));
// Output: 0102030405060708
buf1.swap64();
console.info(buf1.toString('hex'));
// Output: 0807060504030201 toJSON(): Object
Converts this Buffer object into a JSON object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Return value
| Type | Description |
|---|---|
| Object | JSON object. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
let obj = buf1.toJSON();
console.info(JSON.stringify(obj));
// Output: {"type":"Buffer","data":[1,2,3,4,5]} toString(encoding?: string, start?: number, end?: number): string
Converts the data at the specified position in this Buffer object into a string in the specified encoding format.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| encoding | string | No | Encoding format (valid only when value is a string). The default value is 'utf8'. |
| start | number | No | Offset to the start position of the data to convert. The default value is 0. |
| end | number | No | Offset to the end position of data. The default value is the length of this Buffer object. |
Return value
| Type | Description |
|---|---|
| string | String. When the value of start is greater than or equal to Buffer.length or start is greater than end, an empty string is returned. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.allocUninitializedFromPool(26);
for (let i = 0; i < 26; i++) {
buf1.writeInt8(i + 97, i);
}
console.info(buf1.toString('utf-8'));
// Output: abcdefghijklmnopqrstuvwxyz values(): IterableIterator<number>
Creates and returns an iterator that contains the values of this Buffer object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Return value
| Type | Description |
|---|---|
| IterableIterator<number> | Iterator. |
Example
import { buffer } from '@kit.ArkTS';
let buf1 = buffer.from('buffer');
let pair = buf1.values();
let next:IteratorResult<number> = pair.next();
while (!next.done) {
console.info(next.value.toString());
/*
Output: 98
117
102
102
101
114
*/
next = pair.next();
} write(str: string, offset?: number, length?: number, encoding?: string): number
Writes a string of the specified length to this Buffer object at the specified position in the given encoding format.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| str | string | Yes | String to write. |
| offset | number | No | Offset. The default value is 0. |
| length | number | No | Maximum number of bytes to write. The default value is Buffer.length minus offset. |
| encoding | string | No | Encoding format of the string. The default value is 'utf8'. |
Return value
| Type | Description |
|---|---|
| number | Number of bytes written. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[offset/length]" is out of range. It must be >= 0 and <= buf.length. Received value is: [offset/length]. |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.alloc(256);
let len = buf.write('\u00bd + \u00bc = \u00be', 0);
console.info(`${len} bytes: ${buf.toString('utf-8', 0, len)}`);
// Output: 12 bytes: ½ + ¼ = ¾
let buffer1 = buffer.alloc(10);
let length = buffer1.write('abcd', 8);
console.info("length = " + length);
// Output: length = 2 writeBigInt64BE(value: bigint, offset?: number): number
Writes a 64-bit, big-endian, signed big integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | bigint | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeBigInt64BE(BigInt(0x0102030405060708), 0);
console.info("result = " + result);
// Output: result = 8 writeBigInt64LE(value: bigint, offset?: number): number
Writes a 64-bit, little-endian, signed big integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | bigint | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeBigInt64LE(BigInt(0x0102030405060708), 0);
console.info("result = " + result);
// Output: result = 8 writeBigUInt64BE(value: bigint, offset?: number): number
Atomic service API: This API can be used in atomic services since API version 11.
Writes a 64-bit, big-endian, unsigned big integer to this Buffer object at the specified offset.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | bigint | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeBigUInt64BE(BigInt(0xdecafafecacefade), 0);
console.info("result = " + result);
// Output: result = 8 writeBigUInt64LE(value: bigint, offset?: number): number
Writes a 64-bit, little-endian, unsigned big integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | bigint | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeBigUInt64LE(BigInt(0xdecafafecacefade), 0);
console.info("result = " + result);
// Output: result = 8 writeDoubleBE(value: number, offset?: number): number
Writes a 64-bit, big-endian, double-precision floating-point number to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeDoubleBE(123.456, 0);
console.info("result = " + result);
// Output: result = 8 writeDoubleLE(value: number, offset?: number): number
Writes a 64-bit, little-endian, double-precision floating-point number to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 8 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 8. Received value is: [offset] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeDoubleLE(123.456, 0);
console.info("result = " + result);
// Output: result = 8 writeFloatBE(value: number, offset?: number): number
Writes a 32-bit, big-endian, single-precision floating-point number to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeFloatBE(0xcafebabe, 0);
console.info("result = " + result);
// Output: result = 4 writeFloatLE(value: number, offset?: number): number
Writes a 32-bit, little-endian, single-precision floating-point number to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "offset" is out of range. It must be >= 0 and <= buf.length - 4. Received value is: [offset] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(8);
let result = buf.writeFloatLE(0xcafebabe, 0);
console.info("result = " + result);
// Output: result = 4 writeInt8(value: number, offset?: number): number
Writes an 8-bit signed integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 1 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(2);
let result = buf.writeInt8(2, 0);
console.info("result = " + result);
// Output: result = 1
let result1 = buf.writeInt8(-2, 1);
console.info("result1 = " + result1);
// Output: result1 = 2 writeInt16BE(value: number, offset?: number): number
Writes a 16-bit, big-endian, signed integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 2 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(2);
let result = buf.writeInt16BE(0x0102, 0);
console.info("result = " + result);
// Output: result = 2 writeInt16LE(value: number, offset?: number): number
Writes a 16-bit, little-endian, signed integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 2 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(2);
let result = buf.writeInt16LE(0x0304, 0);
console.info("result = " + result);
// Output: result = 2 writeInt32BE(value: number, offset?: number): number
Writes a 32-bit, big-endian, signed integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeInt32BE(0x01020304, 0);
console.info("result = " + result);
// Output: result = 4 writeInt32LE(value: number, offset?: number): number
Writes a 32-bit, little-endian, signed integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeInt32LE(0x05060708, 0);
console.info("result = " + result);
// Output: result = 4 writeIntBE(value: number, offset: number, byteLength: number): number
Writes a big-endian signed value of the specified length to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | Yes | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - byteLength |
| byteLength | number | Yes | Number of bytes to write. |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(6);
let result = buf.writeIntBE(0x1234567890ab, 0, 6);
console.info("result = " + result);
// Output: result = 6 writeIntLE(value: number, offset: number, byteLength: number): number
Writes a little-endian signed value of the specified length to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | Yes | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - byteLength |
| byteLength | number | Yes | Number of bytes to write. |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(6);
let result = buf.writeIntLE(0x1234567890ab, 0, 6);
console.info("result = " + result);
// Output: result = 6 writeUInt8(value: number, offset?: number): number
Writes an 8-bit unsigned integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 1 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt8(0x3, 0);
console.info("result = " + result);
// Output: result = 1
let result1 = buf.writeUInt8(0x4, 1);
console.info("result1 = " + result1);
// Output: result1 = 2
let result2 = buf.writeUInt8(0x23, 2);
console.info("result2 = " + result2);
// Output: result2 = 3
let result3 = buf.writeUInt8(0x42, 3);
console.info("result3 = " + result3);
// Output: result3 = 4 writeUInt16BE(value: number, offset?: number): number
Writes a 16-bit, big-endian, unsigned integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 2 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt16BE(0xdead, 0);
console.info("result = " + result);
// Output: result = 2
let result1 = buf.writeUInt16BE(0xbeef, 2);
console.info("result1 = " + result1);
// Output: result1 = 4 writeUInt16LE(value: number, offset?: number): number
Writes a 16-bit, little-endian, unsigned integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 2 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt16LE(0xdead, 0);
console.info("result = " + result);
// Output: result = 2
let result1 = buf.writeUInt16LE(0xbeef, 2);
console.info("result1 = " + result1);
// Output: result1 = 4 writeUInt32BE(value: number, offset?: number): number
Writes a 32-bit, big-endian, unsigned integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt32BE(0xfeedface, 0);
console.info("result = " + result);
// Output: result = 4 writeUInt32LE(value: number, offset?: number): number
Writes a 32-bit, little-endian, unsigned integer to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | No | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - 4 |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(4);
let result = buf.writeUInt32LE(0xfeedface, 0);
console.info("result = " + result);
// Output: result = 4 writeUIntBE(value: number, offset: number, byteLength: number): number
Writes an unsigned big-endian value of the specified length to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | Yes | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - byteLength |
| byteLength | number | Yes | Number of bytes to write. |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(6);
let result = buf.writeUIntBE(0x1234567890ab, 0, 6);
console.info("result = " + result);
// Output: result = 6 writeUIntLE(value: number, offset: number, byteLength: number): number
Writes an unsigned little-endian value of the specified length to this Buffer object at the specified offset.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| value | number | Yes | Data to write. |
| offset | number | Yes | Offset. The default value is 0. Value range: 0 <= offset <= Buffer.length - byteLength |
| byteLength | number | Yes | Number of bytes to write. |
Return value
| Type | Description |
|---|---|
| number | Offset plus the number of written bytes. |
Error codes
For details about the error codes, see Universal Error Codes and Utils Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
| 10200001 | The value of "[param]" is out of range. It must be >= [left range] and <= [right range]. Received value is: [param] |
Example
import { buffer } from '@kit.ArkTS';
let buf = buffer.allocUninitializedFromPool(6);
let result = buf.writeUIntLE(0x1234567890ab, 0, 6);
console.info("result = " + result);
// Output: result = 6 Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
| Name | Type | Read-Only | Optional | Description |
|---|---|---|---|---|
| size | number | Yes | No | Total size of the Blob object, in bytes. |
| type | string | Yes | No | Type of the data in the Blob object. |
constructor(sources: string[] | ArrayBuffer[] | TypedArray[] | DataView[] | Blob[] , options?: Object)
A constructor used to create a Blob object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| sources | string[] | ArrayBuffer[] | TypedArray[] | DataView[] | Blob[] | Yes | Data sources of the Blob object. |
| options | Object | No | options: - endings: specifies how the terminator '\n' is output. The value can be 'native' or 'transparent'. 'native' means that the terminator follows the system. 'transparent' means that the terminator stored in the Blob object remains unchanged. The default value is 'transparent'. - type: type of the data in the Blob object. This type represents the MIME type of the data. However, it is not used for type format validation. The default value is ''. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
Example
import { buffer } from '@kit.ArkTS';
let blob: buffer.Blob = new buffer.Blob(['a', 'b', 'c']);
class option {
endings: string = "";
type: string = "";
}
let o1: option = {endings:'native', type: 'MIME'}
let blob1: buffer.Blob = new buffer.Blob(['a', 'b', 'c'], o1); arrayBuffer(): Promise<ArrayBuffer>
Puts the Blob data into an ArrayBuffer object. This API uses a promise to return the result.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Return value
| Type | Description |
|---|---|
| Promise<ArrayBuffer> | Promise used to return the ArrayBuffer containing the Blob data. |
Example
import { buffer } from '@kit.ArkTS';
let blob: buffer.Blob = new buffer.Blob(['a', 'b', 'c']);
let pro = blob.arrayBuffer();
pro.then((val: ArrayBuffer) => {
let uint8Array: Uint8Array = new Uint8Array(val);
console.info(uint8Array.toString());
// Output: 97,98,99
}); slice(start?: number, end?: number, type?: string): Blob
Creates and returns a Blob object that contains specified data from this Blob object.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| start | number | No | Offset to the start position of data. The default value is 0. |
| end | number | No | Offset to the end position of data. The default value is the data length in the original Blob object. |
| type | string | No | Type of the data in the new Blob object. The default value is ''. |
Return value
| Type | Description |
|---|---|
| Blob | New Blob object created. |
Example
import { buffer } from '@kit.ArkTS';
let blob: buffer.Blob = new buffer.Blob(['a', 'b', 'c']);
let blob2 = blob.slice(0, 2);
let blob3 = blob.slice(0, 2, "MIME");
console.info("type:", blob3.type); // type: MIME text(): Promise<string>
Decodes data using UTF-8 and returns a string. This API uses a promise to return the result.
Atomic service API: This API can be used in atomic services since API version 11.
System capability: SystemCapability.Utils.Lang
Return value
| Type | Description |
|---|---|
| Promise<string> | Promise used to return the string decoded using UTF-8. |
Example
import { buffer } from '@kit.ArkTS';
let blob: buffer.Blob = new buffer.Blob(['a', 'b', 'c']);
let pro = blob.text();
pro.then((val: string) => {
console.info(val);
// Output: abc
});