egret.ByteArray
包 egret
类 public class ByteArray
ByteArray 类提供用于优化读取、写入以及处理二进制数据的方法和属性。注意:ByteArray 类适用于需要在字节层访问数据的高级开发人员。
公共属性
属性 |
---|
bytes : Uint8Array |
bytesAvailable : number 可从字节数组的当前位置到数组末尾读取的数据的字节数 |
endian : 更改或读取数据的字节顺序;egret.EndianConst.BIG_ENDIAN 或 egret.EndianConst.LITTLE_ENDIAN |
length : number ByteArray 对象的长度(以字节为单位) |
position : number 将文件指针的当前位置(以字节为单位)移动或返回到 ByteArray 对象中 |
rawBuffer : ArrayBuffer |
readAvailable : 可读的剩余字节数 |
公共方法
方法 |
---|
ByteArray(buffer:ArrayBuffer|Uint8Array,bufferExtSize) |
clear(): void 清除字节数组的内容,并将 length 和 position 属性重置为 0 |
readBoolean(): boolean 从字节流中读取布尔值 |
readByte(): number 从字节流中读取带符号的字节 |
readBytes(bytes: egret.ByteArray,offset: number,length: number): void 从字节流中读取 length 参数指定的数据字节数 |
readDouble(): number 从字节流中读取一个 IEEE 754 双精度(64 位)浮点数 |
readFloat(): number 从字节流中读取一个 IEEE 754 单精度(32 位)浮点数 |
readInt(): number 从字节流中读取一个带符号的 32 位整数 |
readShort(): number 从字节流中读取一个带符号的 16 位整数 |
readUTF(): string 从字节流中读取一个 UTF-8 字符串 |
readUTFBytes(length: number): string 从字节流中读取一个由 length 参数指定的 UTF-8 字节序列,并返回一个字符串 |
readUnsignedByte(): number 从字节流中读取无符号的字节 |
readUnsignedInt(): number 从字节流中读取一个无符号的 32 位整数 |
readUnsignedShort(): number 从字节流中读取一个无符号的 16 位整数 |
setArrayBuffer(buffer:ArrayBuffer): void |
writeBoolean(value: boolean): void 写入布尔值 |
writeByte(value: number): void 在字节流中写入一个字节使用参数的低 8 位 |
writeBytes(bytes: egret.ByteArray,offset: number,length: number): void 将指定字节数组 bytes(起始偏移量为 offset,从零开始的索引)中包含 length 个字节的字节序列写入字节流如果省略 length 参数,则使用默认长度 0;该方法将从 offset 开始写入整个缓冲区 |
writeDouble(value: number): void 在字节流中写入一个 IEEE 754 双精度(64 位)浮点数 |
writeFloat(value: number): void 在字节流中写入一个 IEEE 754 单精度(32 位)浮点数 |
writeInt(value: number): void 在字节流中写入一个带符号的 32 位整数 |
writeShort(value: number): void 在字节流中写入一个 16 位整数 |
writeUTF(value: string): void 将 UTF-8 字符串写入字节流 |
writeUTFBytes(value: string): void 将 UTF-8 字符串写入字节流 |
writeUnsignedInt(value: number): void 在字节流中写入一个无符号的 32 位整数 |
writeUnsignedShort(value: number): void 在字节流中写入一个无符号的 16 位整数 |
属性详细信息
bytes
bytes : Uint8Array
- 支持版本:all
- 运行平台:Web,Native
bytesAvailable
bytesAvailable : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
可从字节数组的当前位置到数组末尾读取的数据的字节数。每次访问 ByteArray 对象时,将 bytesAvailable 属性与读取方法结合使用,以确保读取有效的数据。
endian
endian : = egret.EndianConst.BIG_ENDIAN
- 支持版本:Egret 2.4
- 运行平台:Web,Native
更改或读取数据的字节顺序;egret.EndianConst.BIG_ENDIAN 或 egret.EndianConst.LITTLE_ENDIAN。
length
length : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
ByteArray 对象的长度(以字节为单位)。如果将长度设置为大于当前长度的值,则用零填充字节数组的右侧。如果将长度设置为小于当前长度的值,将会截断该字节数组。
position
position : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
将文件指针的当前位置(以字节为单位)移动或返回到 ByteArray 对象中。下一次调用读取方法时将在此位置开始读取,或者下一次调用写入方法时将在此位置开始写入。
rawBuffer
rawBuffer : ArrayBuffer
- 支持版本:all
- 运行平台:Web,Native
readAvailable
readAvailable :
- 支持版本:all
- 运行平台:Web,Native
可读的剩余字节数
方法详细信息
ByteArray()
public ByteArray(buffer:ArrayBuffer|Uint8Array,bufferExtSize)
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- buffer:ArrayBuffer|Uint8Array
- bufferExtSize
clear()
public clear(): void
清除字节数组的内容,并将 length 和 position 属性重置为 0。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
readBoolean()
public readBoolean(): boolean
从字节流中读取布尔值。读取单个字节,如果字节非零,则返回 true,否则返回 false
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:如果字节不为零,则返回 true,否则返回 false
readByte()
public readByte(): number
从字节流中读取带符号的字节
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:介于 -128 和 127 之间的整数
readBytes()
public readBytes(bytes: egret.ByteArray,offset: number,length: number): void
从字节流中读取 length 参数指定的数据字节数。从 offset 指定的位置开始,将字节读入 bytes 参数指定的 ByteArray 对象中,并将字节写入目标 ByteArray 中
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- bytes: egret.ByteArray - 要将数据读入的 ByteArray 对象
- offset: number - bytes 中的偏移(位置),应从该位置写入读取的数据
- length: number - 要读取的字节数。默认值 0 导致读取所有可用的数据
readDouble()
public readDouble(): number
从字节流中读取一个 IEEE 754 双精度(64 位)浮点数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:双精度(64 位)浮点数
readFloat()
public readFloat(): number
从字节流中读取一个 IEEE 754 单精度(32 位)浮点数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:单精度(32 位)浮点数
readInt()
public readInt(): number
从字节流中读取一个带符号的 32 位整数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:介于 -2147483648 和 2147483647 之间的 32 位带符号整数
readShort()
public readShort(): number
从字节流中读取一个带符号的 16 位整数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:介于 -32768 和 32767 之间的 16 位带符号整数
readUTF()
public readUTF(): string
从字节流中读取一个 UTF-8 字符串。假定字符串的前缀是无符号的短整型(以字节表示长度)
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:UTF-8 编码的字符串
readUTFBytes()
public readUTFBytes(length: number): string
从字节流中读取一个由 length 参数指定的 UTF-8 字节序列,并返回一个字符串
支持版本:Egret 2.4
运行平台:Web,Native
参数
- length: number - 指明 UTF-8 字节长度的无符号短整型数
返回:由指定长度的 UTF-8 字节组成的字符串
readUnsignedByte()
public readUnsignedByte(): number
从字节流中读取无符号的字节
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:介于 0 和 255 之间的无符号整数
readUnsignedInt()
public readUnsignedInt(): number
从字节流中读取一个无符号的 32 位整数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:介于 0 和 4294967295 之间的 32 位无符号整数
[readUnsignedShort()
public readUnsignedShort(): number
从字节流中读取一个无符号的 16 位整数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:介于 0 和 65535 之间的 16 位无符号整数
setArrayBuffer()
public setArrayBuffer(buffer:ArrayBuffer): void
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- buffer:ArrayBuffer
writeBoolean()
public writeBoolean(value: boolean): void
写入布尔值。根据 value 参数写入单个字节。如果为 true,则写入 1,如果为 false,则写入 0
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- value: boolean - 确定写入哪个字节的布尔值。如果该参数为 true,则该方法写入 1;如果该参数为 false,则该方法写入 0
writeByte()
public writeByte(value: number): void
在字节流中写入一个字节使用参数的低 8 位。忽略高 24 位
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- value: number - 一个 32 位整数。低 8 位将被写入字节流
writeBytes()
public writeBytes(bytes: egret.ByteArray,offset: number,length: number): void
将指定字节数组 bytes(起始偏移量为 offset,从零开始的索引)中包含 length 个字节的字节序列写入字节流如果省略 length 参数,则使用默认长度 0;该方法将从 offset 开始写入整个缓冲区。如果还省略了 offset 参数,则写入整个缓冲区如果 offset 或 length 超出范围,它们将被锁定到 bytes 数组的开头和结尾
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- bytes: egret.ByteArray - ByteArray 对象
- offset: number - 从 0 开始的索引,表示在数组中开始写入的位置
- length: number - 一个无符号整数,表示在缓冲区中的写入范围
writeDouble()
public writeDouble(value: number): void
在字节流中写入一个 IEEE 754 双精度(64 位)浮点数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- value: number - 双精度(64 位)浮点数
writeFloat()
public writeFloat(value: number): void
在字节流中写入一个 IEEE 754 单精度(32 位)浮点数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- value: number - 单精度(32 位)浮点数
writeInt()
public writeInt(value: number): void
在字节流中写入一个带符号的 32 位整数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- value: number - 要写入字节流的整数
writeShort()
public writeShort(value: number): void
在字节流中写入一个 16 位整数。使用参数的低 16 位。忽略高 16 位
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- value: number - 32 位整数,该整数的低 16 位将被写入字节流
writeUTF()
public writeUTF(value: string): void
将 UTF-8 字符串写入字节流。先写入以字节表示的 UTF-8 字符串长度(作为 16 位整数),然后写入表示字符串字符的字节
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- value: string - 要写入的字符串值
writeUTFBytes()
public writeUTFBytes(value: string): void
将 UTF-8 字符串写入字节流。类似于 writeUTF() 方法,但 writeUTFBytes() 不使用 16 位长度的词为字符串添加前缀
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- value: string - 要写入的字符串值
writeUnsignedInt()
public writeUnsignedInt(value: number): void
在字节流中写入一个无符号的 32 位整数
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- value: number - 要写入字节流的无符号整数
writeUnsignedShort()
public writeUnsignedShort(value: number): void
在字节流中写入一个无符号的 16 位整数
- 支持版本:Egret 2.5
- 运行平台:Web,Native
- 参数
- value: number - 要写入字节流的无符号整数
示例
/*
* 下面的示例使用 ByteArrayExample 类创建新 ByteArray 对象,然后使用 egret.log() 方法输出各种类方法的结果。
*/
class ByteArrayExample extends egret.DisplayObjectContainer {
public constructor() {
super();
var byteArray:egret.ByteArray = new egret.ByteArray();
byteArray.writeUTF("Hello Egret");
byteArray.writeBoolean(false);
byteArray.writeByte(32);
byteArray.position = 0;
egret.log(byteArray.readUTF());//Hello Egret
egret.log(byteArray.readBoolean());//false
egret.log(byteArray.readByte());//32
}
}