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()withIDataInput.readUnsignedByte()andIDataInput.readByte().
- Use IDataOutput.writeShort()withIDataInput.readUnsignedShort()andIDataInput.readShort().
View the examples
 
bytesAvailable:uint  [read-only] 
  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:String  [read-write] 
  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
See also
 
objectEncoding:uint  [read-write] 
     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
See also
 
public function readBoolean():Boolean
  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,trueif the byte is nonzero,falseotherwise. | 
Throws
|  | EOFError — There is not sufficient data available
  to read. | 
 
public function readByte():int
  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. | 
 
public function 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. The bytes are read into the 
  ByteArray objected specified by the bytes parameter, starting at 
  the position specified by offset.
  
 Parameters 
|  | bytes:ByteArray— TheByteArrayobject to read
               data into. | 
|  | 
|  | offset:uint(default =0)— The offset into thebytesparameter 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. | 
 
public function readDouble():Number
  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. | 
 
public function readFloat():Number
  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. | 
 
public function readInt():int
  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. | 
 
public function 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.
      
 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 charSetparameter 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 thecharSetparameter, as inmyTest.readMultiByte(22, "iso-8859-01"), that uses01instead of1might work on your development machine, but not on another machine. On the other
  machine, 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. | 
 
public function readObject():*
  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. | 
See also
 
public function readShort():int
  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. | 
 
public function readUnsignedByte():uint
  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. | 
 
public function readUnsignedInt():uint
  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. | 
 
public function readUnsignedShort():uint
  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. | 
 
public function readUTF():String
  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. | 
 
public function readUTFBytes(length:uint):String
  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. | 
 
 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:
 
     - Declare a new ByteArray object instance byteArr.
- Write the byte-equivalent value of the Boolean falseand the  double-precision 
 	floating-point equivalent of the mathematical value of pi.
- 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.
            }
        }
    }
}
 © 2004-2007 Adobe Systems Incorporated. All rights reserved. 
Fri Feb 15 2008, 2:47 AM GMT-08:00