| Пакет | flash.utils |
| Интерфейс | public interface IDataInput |
| Средство реализации | ByteArray, FileStream, Socket, URLStream |
| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
По умолчанию все операции IDataInput и IDataOutput используют порядок bigEndian (у старшего байта последовательности меньший адрес), и являются неблокирующими. Если данных недостаточно, возникает исключение EOFError. Для определения количества байтов, доступных для чтения, используйте свойство IDataInput.bytesAvailable.
Расширение знака имеет значение только при чтении данных, но не при их записи. Поэтому для работы с IDataInput.readUnsignedByte() и IDataInput.readUnsignedShort() не требуется создавать отдельные методы записи. Другими словами:
-
IDataOutput.writeByte()используется сIDataInput.readUnsignedByte()иIDataInput.readByte(). -
IDataOutput.writeShort()используется сIDataInput.readUnsignedShort()иIDataInput.readShort().
Связанные элементы API
| Свойство | Определено | ||
|---|---|---|---|
| bytesAvailable : uint [только для чтения]
Возвращает число байтов данных, доступных для чтения во входном буфере. | IDataInput | ||
| endian : String
Порядок байтов данных, константа BIG_ENDIAN или LITTLE_ENDIAN класса Endian. | IDataInput | ||
| objectEncoding : uint
Указывает, какой формат, AMF3 или AMF0, используется для записи или чтения двоичных данных с помощью метода readObject(). | IDataInput | ||
| Метод | Определено | ||
|---|---|---|---|
Считывает логическое значение из потока файлов, байтов или массива байтов. | IDataInput | ||
Считывает байт со знаком из потока файлов, байтов или массива байтов. | IDataInput | ||
Считывает число байтов данных, заданное параметром length, из потока файлов, байтов или массива байтов. | IDataInput | ||
Считывает из потока файлов, байтов или массива байтов число IEEE 754 с двойной точностью и плавающей запятой. | IDataInput | ||
Считывает из потока файлов, байтов или массива байтов число IEEE 754 с одинарной точностью и плавающей запятой. | IDataInput | ||
Считывает из потока файлов, байтов или массива байтов 32-разрядное целое число со знаком. | IDataInput | ||
Считывает из потока файлов, байтов или массива байтов многобайтовую строку заданной длины с использованием указанного набора символов. | IDataInput | ||
readObject():*
Считывает объект из потока файлов, байтов или массива байтов зашифрованный в сериализованном формате AMF. | IDataInput | ||
Считывает из потока файлов, байтов или массива байтов 16-разрядное целое число со знаком. | IDataInput | ||
Считывает байт без знака из потока файлов, байтов или массива байтов. | IDataInput | ||
Считывает из потока файлов, байтов или массива байтов 32-разрядное целое число без знака. | IDataInput | ||
Считывает из потока файлов, байтов или массива байтов 16-разрядное целое число без знака. | IDataInput | ||
Считывает из потока файлов, байтов или массива байтов строку UTF-8. | IDataInput | ||
Считывает последовательность байтов UTF-8 из потока байтов или массива байтов и возвращает строку. | IDataInput | ||
bytesAvailable | свойство |
bytesAvailable:uint [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает число байтов данных, доступных для чтения во входном буфере. В коде должен быть вызов свойства bytesAvailable, проверяющий доступность необходимого объема данных до того, как будет выполнена попытка их считывания с помощью одного из методов чтения.
Реализация
public function get bytesAvailable():uintendian | свойство |
objectEncoding | свойство |
objectEncoding:uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Указывает, какой формат, AMF3 или AMF0, используется для записи или чтения двоичных данных с помощью метода readObject(). Значение представлено константой из класса ObjectEncoding.
Реализация
public function get objectEncoding():uint public function set objectEncoding(value:uint):voidСвязанные элементы API
readBoolean | () | метод |
public function readBoolean():Boolean| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает логическое значение из потока файлов, байтов или массива байтов. Считывается один байт. Если этот байт ненулевой, то возвращается значение true. В противном случае возвращается значение false.
Boolean — Логическое значение будет true, если количество байтов не равно нулю, в остальных случаях оно будет false.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readByte | () | метод |
public function readByte():int| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает байт со знаком из потока файлов, байтов или массива байтов.
Возвращаетint — Возвращенное значение находится в диапазоне от -128 до 127.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readBytes | () | метод |
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает число байтов данных, заданное параметром 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 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока файлов, байтов или массива байтов число IEEE 754 с двойной точностью и плавающей запятой.
ВозвращаетNumber — Число IEEE 754 с двойной точностью и плавающей запятой.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readFloat | () | метод |
public function readFloat():Number| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока файлов, байтов или массива байтов число IEEE 754 с одинарной точностью и плавающей запятой.
ВозвращаетNumber — Число IEEE 754 с одинарной точностью и плавающей запятой.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readInt | () | метод |
public function readInt():int| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока файлов, байтов или массива байтов 32-разрядное целое число со знаком.
Возвращаетint — Возвращаемое значение находится в диапазоне от -2147483648 до 2147483647.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readMultiByte | () | метод |
public function readMultiByte(length:uint, charSet:String):String| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока файлов, байтов или массива байтов многобайтовую строку заданной длины с использованием указанного набора символов.
Параметры
length:uint — Число считываемых из потока байтов.
| |
charSet:String — Строка, обозначающая набор символов, которые используются для интерпретации байтов. Возможные строки наборов символов: "shift_jis", "cn-gb", "iso-8859-1" и другие. Полный список см. в разделе Поддерживаемые наборы символов.
Примечание. Если в текущей системе не распознается значение параметра |
String — Строка в кодировке UTF-8.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readObject | () | метод |
public function readObject():*| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает объект из потока файлов, байтов или массива байтов зашифрованный в сериализованном формате AMF.
Возвращает* — Десериализованный объект
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
Связанные элементы API
readShort | () | метод |
public function readShort():int| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока файлов, байтов или массива байтов 16-разрядное целое число со знаком.
Возвращаетint — Возвращаемое значение находится в диапазоне от -32768 до 32767.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readUnsignedByte | () | метод |
public function readUnsignedByte():uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает байт без знака из потока файлов, байтов или массива байтов.
Возвращаетuint — Возвращенное значение находится в диапазоне от 0 до 255.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readUnsignedInt | () | метод |
public function readUnsignedInt():uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока файлов, байтов или массива байтов 32-разрядное целое число без знака.
Возвращаетuint — Возвращенное значение находится в диапазоне от 0 до 4294967295.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readUnsignedShort | () | метод |
public function readUnsignedShort():uint| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока файлов, байтов или массива байтов 16-разрядное целое число без знака.
Возвращаетuint — Возвращенное значение находится в диапазоне от 0 до 65535.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readUTF | () | метод |
public function readUTF():String| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает из потока файлов, байтов или массива байтов строку UTF-8. Предполагается, что в строку вставляется префикс с неподписанным значением, указывающим длину в байтах.
Этот метод похож на метод readUTF() в интерфейсе Java® IDataInput.
String — Строка в кодировке UTF-8, являющаяся байтовым представлением символов.
|
Выдает
EOFError — Недостаточно данных, доступных для чтения.
|
readUTFBytes | () | метод |
public function readUTFBytes(length:uint):String| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Считывает последовательность байтов UTF-8 из потока байтов или массива байтов и возвращает строку.
Параметры
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.
}
}
}
}
Tue Jun 12 2018, 11:34 AM Z