| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
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
bytesAvailable:uint [read-only]
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
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]
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
The byte order for the data, either the "bigEndian" or "littleEndian" constant from the Endian class.
Implementation
public function get endian():String
public function set endian(value:String):void
See also
objectEncoding:uint [read-write]
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Used to determine whether the ActionScript 3.0, ActionScript 2.0, or ActionScript 1.0 format should be used when writing to, or reading binary data. 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads a Boolean value from the 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.
|
public function readByte():int
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads a signed byte from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads the number of data bytes, specified by the length parameter,
from the 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.
|
public function readDouble():Number
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads an IEEE 754 double-precision floating point number from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads an IEEE 754 single-precision floating point number from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads a signed 32-bit integer from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads a multibyte string of specified length from the byte stream 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 Flash Player 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 machine, but not on another machine. On the other machine, Flash Player 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():*
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads an object from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads a signed 16-bit integer from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads an unsigned byte from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads an unsigned 32-bit integer from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads an unsigned 16-bit integer from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads a UTF-8 string from the 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
| Language Version : | ActionScript 3.0 |
| Player Version : | Flash Player 9 |
Reads a sequence of length 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 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
false and 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.
Mon Nov 19 2007, 10:27 AM GMT-08:00