ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Show Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes
flash.utils 

IDataInput  - AS3

Packageflash.utils
Interfacepublic interface IDataInput
Implementors ByteArray, FileStream, Socket, URLStream

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

The IDataInput interface provides a set of methods for reading binary data. This interface is the I/O counterpart to the IDataOutput interface, which writes binary data.

All IDataInput and IDataOutput operations are "bigEndian" by default (the most significant byte in the sequence is stored at the lowest or first storage address), and are nonblocking. If insufficient data is available, an EOFError exception is thrown. Use the IDataInput.bytesAvailable property to determine how much data is available to read.

Sign extension matters only when you read data, not when you write it. Therefore you do not need separate write methods to work with IDataInput.readUnsignedByte() and IDataInput.readUnsignedShort(). In other words:

  • Use IDataOutput.writeByte() with IDataInput.readUnsignedByte() and IDataInput.readByte().
  • Use IDataOutput.writeShort() with IDataInput.readUnsignedShort() and IDataInput.readShort().

View the examples

Related API Elements



Public Properties
 PropertyDefined By
  bytesAvailable : uint
[read-only] Returns the number of bytes of data available for reading in the input buffer.
IDataInput
  endian : String
The byte order for the data, either the BIG_ENDIAN or LITTLE_ENDIAN constant from the Endian class.
IDataInput
  objectEncoding : uint
Used to determine whether the AMF3 or AMF0 format is used when writing or reading binary data using the readObject() method.
IDataInput
Public Methods
 MethodDefined By
  
Reads a Boolean value from the file stream, byte stream, or byte array.
IDataInput
  
Reads a signed byte from the file stream, byte stream, or byte array.
IDataInput
  
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
Reads the number of data bytes, specified by the length parameter, from the file stream, byte stream, or byte array.
IDataInput
  
Reads an IEEE 754 double-precision floating point number from the file stream, byte stream, or byte array.
IDataInput
  
Reads an IEEE 754 single-precision floating point number from the file stream, byte stream, or byte array.
IDataInput
  
Reads a signed 32-bit integer from the file stream, byte stream, or byte array.
IDataInput
  
readMultiByte(length:uint, charSet:String):String
Reads a multibyte string of specified length from the file stream, byte stream, or byte array using the specified character set.
IDataInput
  
Reads an object from the file stream, byte stream, or byte array, encoded in AMF serialized format.
IDataInput
  
Reads a signed 16-bit integer from the file stream, byte stream, or byte array.
IDataInput
  
Reads an unsigned byte from the file stream, byte stream, or byte array.
IDataInput
  
Reads an unsigned 32-bit integer from the file stream, byte stream, or byte array.
IDataInput
  
Reads an unsigned 16-bit integer from the file stream, byte stream, or byte array.
IDataInput
  
Reads a UTF-8 string from the file stream, byte stream, or byte array.
IDataInput
  
Reads a sequence of UTF-8 bytes from the byte stream or byte array and returns a string.
IDataInput
Property Detail

bytesAvailable

property
bytesAvailable:uint  [read-only]

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Returns the number of bytes of data available for reading in the input buffer. User code must call bytesAvailable to ensure that sufficient data is available before trying to read it with one of the read methods.



Implementation
    public function get bytesAvailable():uint

endian

property 
endian:String

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

The byte order for the data, either the BIG_ENDIAN or LITTLE_ENDIAN constant from the Endian class.



Implementation
    public function get endian():String
    public function set endian(value:String):void

Related API Elements

objectEncoding

property 
objectEncoding:uint

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Used to determine whether the AMF3 or AMF0 format is used when writing or reading binary data using the readObject() method. The value is a constant from the ObjectEncoding class.



Implementation
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

Related API Elements

Method Detail

readBoolean

()method
public function readBoolean():Boolean

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads a Boolean value from the file stream, byte stream, or byte array. A single byte is read and true is returned if the byte is nonzero, false otherwise.

Returns
Boolean — A Boolean value, true if the byte is nonzero, false otherwise.

Throws
EOFError — There is not sufficient data available to read.

readByte

()method 
public function readByte():int

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads a signed byte from the file stream, byte stream, or byte array.

Returns
int — The returned value is in the range -128 to 127.

Throws
EOFError — There is not sufficient data available to read.

readBytes

()method 
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads the number of data bytes, specified by the length parameter, from the file stream, byte stream, or byte array. The bytes are read into the ByteArray objected specified by the bytes parameter, starting at the position specified by offset.

Parameters

bytes:ByteArray — The ByteArray object to read data into.
 
offset:uint (default = 0) — The offset into the bytes parameter at which data read should begin.
 
length:uint (default = 0) — The number of bytes to read. The default value of 0 causes all available data to be read.

Throws
EOFError — There is not sufficient data available to read.

readDouble

()method 
public function readDouble():Number

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads an IEEE 754 double-precision floating point number from the file stream, byte stream, or byte array.

Returns
Number — An IEEE 754 double-precision floating point number.

Throws
EOFError — There is not sufficient data available to read.

readFloat

()method 
public function readFloat():Number

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads an IEEE 754 single-precision floating point number from the file stream, byte stream, or byte array.

Returns
Number — An IEEE 754 single-precision floating point number.

Throws
EOFError — There is not sufficient data available to read.

readInt

()method 
public function readInt():int

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads a signed 32-bit integer from the file stream, byte stream, or byte array.

Returns
int — The returned value is in the range -2147483648 to 2147483647.

Throws
EOFError — There is not sufficient data available to read.

readMultiByte

()method 
public function readMultiByte(length:uint, charSet:String):String

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads a multibyte string of specified length from the file stream, byte stream, or byte array using the specified character set.

Parameters

length:uint — The number of bytes from the byte stream to read.
 
charSet:String — The string denoting the character set to use to interpret the bytes. Possible character set strings include "shift-jis", "cn-gb", "iso-8859-1", and others. For a complete list, see Supported Character Sets.

Note: If the value for the charSet parameter is not recognized by the current system, then Adobe® Flash® Player or Adobe® AIR® uses the system's default code page as the character set. For example, a value for the charSet parameter, as in myTest.readMultiByte(22, "iso-8859-01"), that uses 01 instead of 1 might work on your development system, but not on another system. On the other system, Flash Player or the AIR runtime will use the system's default code page.

Returns
String — UTF-8 encoded string.

Throws
EOFError — There is not sufficient data available to read.

readObject

()method 
public function readObject():*

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads an object from the file stream, byte stream, or byte array, encoded in AMF serialized format.

Returns
* — The deserialized object

Throws
EOFError — There is not sufficient data available to read.

Related API Elements

readShort

()method 
public function readShort():int

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads a signed 16-bit integer from the file stream, byte stream, or byte array.

Returns
int — The returned value is in the range -32768 to 32767.

Throws
EOFError — There is not sufficient data available to read.

readUnsignedByte

()method 
public function readUnsignedByte():uint

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads an unsigned byte from the file stream, byte stream, or byte array.

Returns
uint — The returned value is in the range 0 to 255.

Throws
EOFError — There is not sufficient data available to read.

readUnsignedInt

()method 
public function readUnsignedInt():uint

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads an unsigned 32-bit integer from the file stream, byte stream, or byte array.

Returns
uint — The returned value is in the range 0 to 4294967295.

Throws
EOFError — There is not sufficient data available to read.

readUnsignedShort

()method 
public function readUnsignedShort():uint

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads an unsigned 16-bit integer from the file stream, byte stream, or byte array.

Returns
uint — The returned value is in the range 0 to 65535.

Throws
EOFError — There is not sufficient data available to read.

readUTF

()method 
public function readUTF():String

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads a UTF-8 string from the file stream, byte stream, or byte array. The string is assumed to be prefixed with an unsigned short indicating the length in bytes.

This method is similar to the readUTF() method in the Java® IDataInput interface.

Returns
String — A UTF-8 string produced by the byte representation of characters.

Throws
EOFError — There is not sufficient data available to read.

readUTFBytes

()method 
public function readUTFBytes(length:uint):String

Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0, Flash Player 9, Flash Lite 4

Reads a sequence of UTF-8 bytes from the byte stream or byte array and returns a string.

Parameters

length:uint — The number of bytes to read.

Returns
String — A UTF-8 string produced by the byte representation of characters of the specified length.

Throws
EOFError — There is not sufficient data available to read.
DataInputExample.as

The following example uses the class DataInputExample to write a boolean and the double-precision floating-point representation of pi to a byte array. This is accomplished using the following steps:
  1. Declare a new ByteArray object instance byteArr.
  2. Write the byte-equivalent value of the Boolean false and the double-precision floating-point equivalent of the mathematical value of pi.
  3. Read back the boolean and double-precision floating-point number.

Notice how a code segment is added at the end to check for end of file errors to ensure that the byte stream is not read past its end.

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