Главная / Action Script 3
Пакетflash.utils
Интерфейс public interface IDataInput
Средство реализации ByteArray, FileStream, Socket, URLStream

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

В интерфейсе IDataInput предусмотрен набор методов для чтения двоичных данных. В операциях ввода-вывода этот интерфейс дополняет интерфейс IDataOutput, который записывает двоичные данные.

По умолчанию все операции IDataInput и IDataOutput используют порядок bigEndian (у старшего байта последовательности меньший адрес), и являются неблокирующими. Если данных недостаточно, возникает исключение EOFError. Чтобы определить количество байт, доступных для чтения, используйте свойство IDataInput.bytesAvailable.

Расширение знака имеет значение только при чтении данных, но не при их записи. Поэтому для работы с IDataInput.readUnsignedByte() и IDataInput.readUnsignedShort() не требуется создавать отдельные методы записи. Другими словами:

Посмотреть примеры

См. также

Интерфейс IDataOutput
endian
Класс Socket
Класс URLStream
Класс ByteArray
Класс EOFError


Общедоступные свойства
 СвойствоОпределено
  bytesAvailable : uint
[только для чтения] Возвращает число байт данных, доступных для чтения во входном буфере.
IDataInput
  endian : String
Порядок байт данных, константа bigEndian или littleEndian класса Endian.
IDataInput
  objectEncoding : uint
Позволяет определить, какой формат — ActionScript 3.0, ActionScript 2.0 или ActionScript 1.0, — должен применяться при записи или чтении двоичных данных.
IDataInput
Общедоступные методы
 МетодОпределено
  
Считывает логическое значение из потока байт или массива байт.
IDataInput
  
Считывает байт со знаком из потока байт или массива байт.
IDataInput
  
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Считывает число байт данных, заданное параметром length, из потока байт или массива байт.
IDataInput
  
Считывает из потока байт или массива байт число IEEE 754 с двойной точностью и плавающей запятой.
IDataInput
  
Считывает из потока байт или массива байт число IEEE 754 с одинарной точностью и плавающей запятой.
IDataInput
  
Считывает из потока байт или массива байт 32-разрядное целое число со знаком.
IDataInput
  
readMultiByte(length:uint, charSet:String):String
Считывает из потока байт многобайтовую строку заданной длины с использованием заданного набора знаков.
IDataInput
  
Считывает объект из потока байт или массива байт, зашифрованного в сериализованный формат AMF.
IDataInput
  
Считывает из потока байт или массива байт 16-разрядное целое число со знаком.
IDataInput
  
Считывает байт без знака из потока байт или массива байт.
IDataInput
  
Считывает из потока байт или массива байт 32-разрядное целое число без знака.
IDataInput
  
Считывает из потока байт или массива байт 16-разрядное целое число без знака.
IDataInput
  
Считывает из потока байт или массива байт строку UTF-8.
IDataInput
  
Считывает из потока байт или массива байт последовательность байт UTF-8 и возвращает строку.
IDataInput
Сведения о свойстве
bytesAvailableсвойство
bytesAvailable:uint  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Возвращает число байт данных, доступных для чтения во входном буфере. В коде должен быть вызов свойства bytesAvailable, проверяющий доступность необходимого объема данных до того, как будет выполнена попытка их считывания с помощью одного из методов "read".



Реализация
    public function get bytesAvailable():uint
endianсвойство 
endian:String  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Порядок байт данных, константа bigEndian или littleEndian класса Endian.



Реализация
    public function get endian():String
    public function set endian(value:String):void

См. также

objectEncodingсвойство 
objectEncoding:uint  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Позволяет определить, какой формат — ActionScript 3.0, ActionScript 2.0 или ActionScript 1.0, — должен применяться при записи или чтении двоичных данных. Значение представлено константой из класса ObjectEncoding.



Реализация
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

См. также

Сведения о методе
readBoolean()метод
public function readBoolean():Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает логическое значение из потока байт или массива байт. Считывается один байт. Если этот байт ненулевой, то возвращается значение true. В противном случае возвращается значение false.

Возвращает
Boolean — Логическое значение. True, если считывается ненулевой байт, в противном случае используется значение false.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readByte()метод 
public function readByte():int

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает байт со знаком из потока байт или массива байт.

Возвращает
int — Возвращенное значение находится в диапазоне от -128 до 127.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readBytes()метод 
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает из потока байт или массива байт число байт данных, заданное параметром length. Байты считываются в объект ByteArray, определяемый параметром bytes, при этом начальная позиция определяется параметром offset.

Параметры

bytes:ByteArray — Объект ByteArray, в который считываются данные.
 
offset:uint (default = 0) — Смещение в параметре bytes, с которого должно начинаться считывание данных.
 
length:uint (default = 0) — Число байт для считывания. Если значение по умолчанию равно 0, считываются все доступные данные.


Выдает
EOFError — Недостаточно данных, доступных для чтения.
readDouble()метод 
public function readDouble():Number

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает из потока байт или массива байт число IEEE 754 с двойной точностью и плавающей запятой.

Возвращает
Number — Число IEEE 754 с двойной точностью и плавающей запятой.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readFloat()метод 
public function readFloat():Number

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает из потока байт или массива байт число IEEE 754 с одинарной точностью и плавающей запятой.

Возвращает
Number — Число IEEE 754 с одинарной точностью и плавающей запятой.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readInt()метод 
public function readInt():int

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает из потока байт или массива байт 32-разрядное целое число со знаком.

Возвращает
int — Возвращенное значение находится в диапазоне от -2147483648 до 2147483647.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readMultiByte()метод 
public function readMultiByte(length:uint, charSet:String):String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 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 — Недостаточно данных, доступных для чтения.
readObject()метод 
public function readObject():*

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает объект из потока байт или массива байт, зашифрованного в сериализованный формат AMF.

Возвращает
* — Десериализованный объект

Выдает
EOFError — Недостаточно данных, доступных для чтения.

См. также

readShort()метод 
public function readShort():int

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает из потока байт или массива байт 16-разрядное целое число со знаком.

Возвращает
int — Возвращенное значение находится в диапазоне от -32768 до 32767.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readUnsignedByte()метод 
public function readUnsignedByte():uint

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает байт без знака из потока байт или массива байт.

Возвращает
uint — Возвращенное значение находится в диапазоне от 0 до 255.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readUnsignedInt()метод 
public function readUnsignedInt():uint

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает из потока байт или массива байт 32-разрядное целое число без знака.

Возвращает
uint — Возвращенное значение находится в диапазоне от 0 до 4294967295.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readUnsignedShort()метод 
public function readUnsignedShort():uint

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает из потока байт или массива байт 16-разрядное целое число без знака.

Возвращает
uint — Возвращенное значение находится в диапазоне от 0 до 65535.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readUTF()метод 
public function readUTF():String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает из потока байт или массива байт строку UTF-8. Предполагается, что в строку вставляется префикс с неподписанным значением, указывающим длину в байтах.

Этот метод похож на метод readUTF() интерфейса IDataInput языка Java.

Возвращает
String — Строка в кодировке UTF-8, являющаяся байтовым представлением символов.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
readUTFBytes()метод 
public function readUTFBytes(length:uint):String

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Считывает из потока байт или массива байт последовательность байт UTF-8 длиной length и возвращает строку.

Параметры

length:uint — Число байт для считывания.

Возвращает
String — Строка в кодировке UTF-8, являющаяся байтовым представлением символов указанной длины.

Выдает
EOFError — Недостаточно данных, доступных для чтения.
Примеры Как пользоваться примерами
DataInputExample.as

В следующем примере класс DataInputExample используется для записи в массив байт логического значения и представления числа "пи" с двойной точностью и плавающей запятой. Это можно сделать, выполнив следующие действия:
  1. Объявляется новый экземпляр объекта ByteArray byteArr.
  2. Записывается эквивалент байтового логического значения false и эквивалент числа "пи" с двойной точностью и плавающей запятой.
  3. Считывается логическое значение и число двойной точности с плавающей запятой.

Обратите внимание на то, что в конце добавляется сегмент кода для проверки ошибок конца файла. Это позволяет прекратить считывание потока байт по достижении его окончания.

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