Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
В интерфейсе IDataInput предусмотрен набор методов для чтения двоичных данных. В операциях ввода-вывода этот интерфейс дополняет интерфейс IDataOutput, который записывает двоичные данные.
По умолчанию все операции IDataInput и IDataOutput используют порядок bigEndian (у старшего байта последовательности меньший адрес), и являются неблокирующими. Если данных недостаточно, возникает исключение EOFError
. Чтобы определить количество байт, доступных для чтения, используйте свойство IDataInput.bytesAvailable
.
Расширение знака имеет значение только при чтении данных, но не при их записи. Поэтому для работы с IDataInput.readUnsignedByte()
и IDataInput.readUnsignedShort()
не требуется создавать отдельные методы записи. Другими словами:
-
IDataOutput.writeByte()
используется с IDataInput.readUnsignedByte()
и IDataInput.readByte()
.
-
IDataOutput.writeShort()
используется с IDataInput.readUnsignedShort()
и IDataInput.readShort()
.
Посмотреть примеры
bytesAvailable:uint
[только для чтения]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает число байт данных, доступных для чтения во входном буфере. В коде должен быть вызов свойства bytesAvailable
, проверяющий доступность необходимого объема данных до того, как будет выполнена попытка их считывания с помощью одного из методов "read".
Реализация public function get bytesAvailable():uint
endian:String
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Порядок байт данных, константа bigEndian или littleEndian класса Endian.
Реализация public function get endian():String
public function set endian(value:String):void
См. также
objectEncoding:uint
[чтение и запись]
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Позволяет определить, какой формат — ActionScript 3.0, ActionScript 2.0 или ActionScript 1.0, — должен применяться при записи или чтении двоичных данных. Значение представлено константой из класса ObjectEncoding.
Реализация public function get objectEncoding():uint
public function set objectEncoding(value:uint):void
См. также
public function readBoolean():Boolean
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает логическое значение из потока байт или массива байт. Считывается один байт. Если этот байт ненулевой, то возвращается значение true
. В противном случае возвращается значение false
.
Возвращает | Boolean — Логическое значение. True , если считывается ненулевой байт, в противном случае используется значение false .
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readByte():int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает байт со знаком из потока байт или массива байт.
Возвращает | int — Возвращенное значение находится в диапазоне от -128 до 127.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт или массива байт число байт данных, заданное параметром length
. Байты считываются в объект ByteArray, определяемый параметром bytes
, при этом начальная позиция определяется параметром offset
.
Параметры
| bytes:ByteArray — Объект ByteArray , в который считываются данные.
|
|
| offset:uint (default = 0 ) — Смещение в параметре bytes , с которого должно начинаться считывание данных.
|
|
| length:uint (default = 0 ) — Число байт для считывания. Если значение по умолчанию равно 0, считываются все доступные данные.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readDouble():Number
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт или массива байт число IEEE 754 с двойной точностью и плавающей запятой.
Возвращает | Number — Число IEEE 754 с двойной точностью и плавающей запятой.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readFloat():Number
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт или массива байт число IEEE 754 с одинарной точностью и плавающей запятой.
Возвращает | Number — Число IEEE 754 с одинарной точностью и плавающей запятой.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readInt():int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт или массива байт 32-разрядное целое число со знаком.
Возвращает | int — Возвращенное значение находится в диапазоне от -2147483648 до 2147483647.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readMultiByte(length:uint, charSet:String):String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт многобайтовую строку заданной длины с использованием заданного набора знаков.
Параметры
| length:uint — Число считываемых из потока байтов.
|
|
| charSet:String — Строка, обозначающая набор символов, которые используются для интерпретации байтов. Возможные строки наборов символов: "shift_jis" , "cn-gb" , "iso-8859-1" и другие. Полный список см. в разделе Поддерживаемые наборы символов.
Примечание. Если текущая система не распознает значение параметра charSet , то в качестве набора символов проигрыватель Flash Player будет использовать кодовую страницу по умолчанию. Например, значение параметра charSet , например в myTest.readMultiByte(22, "iso-8859-01") , которое использует 01 вместо 1 может работать на вашем компьютере, но привести к сбою на другой рабочей станции. На другом компьютере проигрыватель Flash Player будет использовать кодовую страницу, заданную по умолчанию в системе.
|
Возвращает | String — Строка в кодировке UTF-8.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readObject():*
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает объект из потока байт или массива байт, зашифрованного в сериализованный формат AMF.
Возвращает | * — Десериализованный объект
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
См. также
public function readShort():int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт или массива байт 16-разрядное целое число со знаком.
Возвращает | int — Возвращенное значение находится в диапазоне от -32768 до 32767.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readUnsignedByte():uint
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает байт без знака из потока байт или массива байт.
Возвращает | uint — Возвращенное значение находится в диапазоне от 0 до 255.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readUnsignedInt():uint
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт или массива байт 32-разрядное целое число без знака.
Возвращает | uint — Возвращенное значение находится в диапазоне от 0 до 4294967295.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readUnsignedShort():uint
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт или массива байт 16-разрядное целое число без знака.
Возвращает | uint — Возвращенное значение находится в диапазоне от 0 до 65535.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readUTF():String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт или массива байт строку UTF-8. Предполагается, что в строку вставляется префикс с неподписанным значением, указывающим длину в байтах.
Этот метод похож на метод readUTF()
интерфейса IDataInput языка Java.
Возвращает | String — Строка в кодировке UTF-8, являющаяся байтовым представлением символов.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
public function readUTFBytes(length:uint):String
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Считывает из потока байт или массива байт последовательность байт UTF-8 длиной length
и возвращает строку.
Параметры
| length:uint — Число байт для считывания.
|
Возвращает | String — Строка в кодировке UTF-8, являющаяся байтовым представлением символов указанной длины.
|
Выдает | EOFError — Недостаточно данных, доступных для чтения.
|
В следующем примере класс
DataInputExample
используется для записи в массив байт логического значения и представления числа "пи" с двойной точностью и плавающей запятой. Это можно сделать, выполнив следующие действия:
- Объявляется новый экземпляр объекта ByteArray
byteArr
. - Записывается эквивалент байтового логического значения
false
и эквивалент числа "пи" с двойной точностью и плавающей запятой. - Считывается логическое значение и число двойной точности с плавающей запятой.
Обратите внимание на то, что в конце добавляется сегмент кода для проверки ошибок конца файла. Это позволяет прекратить считывание потока байт по достижении его окончания.
package {
import flash.display.Sprite;
import flash.utils.ByteArray;
import flash.errors.EOFError;
public class DataInputExample extends Sprite {
public function DataInputExample() {
var byteArr:ByteArray = new ByteArray();
byteArr.writeBoolean(false);
byteArr.writeDouble(Math.PI);
byteArr.position = 0;
try {
trace(byteArr.readBoolean()); // false
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
try {
trace(byteArr.readDouble()); // 3.141592653589793
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
try {
trace(byteArr.readDouble());
}
catch(e:EOFError) {
trace(e); // EOFError: Error #2030: End of file was encountered.
}
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Wed Sep 24 2008, 07:56 AM -07:00