flash.utils

# IDataInput - AS3

Package | flash.utils
Interface | public 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

IDataOutput interface
endian
FileStream class
Socket class
URLStream class
ByteArray class
EOFError class

Public Properties

| Property | Defined 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

| Method | Defined By
--- | --- | ---
|  | readBoolean():Boolean Reads a Boolean value from the file stream, byte stream, or byte array. | IDataInput
|  | readByte():int 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
|  | readDouble():Number Reads an IEEE 754 double-precision floating point number from the file stream, byte stream, or byte array. | IDataInput
|  | readFloat():Number Reads an IEEE 754 single-precision floating point number from the file stream, byte stream, or byte array. | IDataInput
|  | readInt():int 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
|  | readObject():* Reads an object from the file stream, byte stream, or byte array, encoded in AMF serialized format. | IDataInput
|  | readShort():int Reads a signed 16-bit integer from the file stream, byte stream, or byte array. | IDataInput
|  | readUnsignedByte():uint Reads an unsigned byte from the file stream, byte stream, or byte array. | IDataInput
|  | readUnsignedInt():uint Reads an unsigned 32-bit integer from the file stream, byte stream, or byte array. | IDataInput
|  | readUnsignedShort():uint Reads an unsigned 16-bit integer from the file stream, byte stream, or byte array. | IDataInput
|  | readUTF():String Reads a UTF-8 string from the file stream, byte stream, or byte array. | IDataInput
|  | readUTFBytes(length:uint):String 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

Endian class

### 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

readObject()
IDataOutput.writeObject()
ObjectEncoding class
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

objectEncoding
flash.net.registerClassAlias()

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

Examples How to use this example
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.

Copy

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

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00