| 런타임 버전: | AIR 1.0 Flash Player 9 |
IDataInput 인터페이스는 이진 데이터를 읽는 메서드 집합을 제공합니다. 이는 이진 데이터를 쓰는 IDataOutput 인터페이스에 대응되는 I/O 인터페이스입니다.
기본적으로 모든 IDataInput 및 IDataOutput 작업은 시퀀스의 최상위 바이트가 저장소에서 가장 낮은 첫 번째 주소에 저장되는 "bigEndian"이며 비블로킹 방식입니다. 사용할 수 있는 데이터가 부족하면 EOFError 예외가 발생합니다. 읽을 수 있는 데이터의 양을 확인하려면 IDataInput.bytesAvailable 속성을 사용합니다.
부호 확장은 데이터를 쓸 때가 아닌 데이터를 읽을 때만 의미가 있습니다. 따라서 IDataInput.readUnsignedByte() 및 IDataInput.readUnsignedShort()와 함께 사용할 별도의 쓰기 메서드는 필요하지 않습니다. 다시 말하자면 다음과 같습니다.
-
IDataOutput.writeByte()를 IDataInput.readUnsignedByte() 및 IDataInput.readByte()와 함께 사용합니다.
-
IDataOutput.writeShort()를 IDataInput.readUnsignedShort() 및 IDataInput.readShort()와 함께 사용합니다.
예제 보기
bytesAvailable:uint [읽기 전용]
| 런타임 버전: | AIR 1.0 Flash Player 9 |
입력 버퍼에서 읽을 수 있는 데이터 바이트 수를 반환합니다. 읽기 메서드 중 하나를 사용하여 데이터를 읽기 전에 사용자 코드에서 bytesAvailable을 호출하여 읽을 수 있는 데이터가 충분한지 확인해야 합니다.
구현 public function get bytesAvailable():uintendian:String [읽기/쓰기]
| 런타임 버전: | AIR 1.0 Flash Player 9 |
데이터의 바이트 순서로, Endian 클래스의 BIG_ENDIAN 또는 LITTLE_ENDIAN 상수입니다.
구현 public function get endian():String public function set endian(value:String):void참고 사항
objectEncoding:uint [읽기/쓰기]
| 런타임 버전: | AIR 1.0 Flash Player 9 |
readObject() 메서드를 사용하여 이진 데이터를 기록하거나 읽을 때 AMF3 또는 AMF0 포맷을 사용할지 여부를 결정하는 데 사용됩니다. 값은 ObjectEncoding 클래스의 상수입니다.
구현 public function get objectEncoding():uint public function set objectEncoding(value:uint):void참고 사항
public function readBoolean():Boolean| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 부울 값을 읽습니다. 단일 바이트를 읽고 해당 바이트가 0이 아니면 true를, 그렇지 않으면 false를 반환합니다.
반환값 | Boolean —
부울 값으로 바이트가 0이 아니면 true이고 그렇지 않으면 false입니다.
|
오류 public function readByte():int| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 부호 있는 바이트를 읽습니다.
반환값 | int — 반환 값의 범위는 -128에서 127 사이입니다. |
오류 public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 length 매개 변수로 지정된 만큼의 데이터 바이트 수를 읽습니다. offset에 지정된 위치부터 bytes 매개 변수에 지정된 ByteArray 객체로 바이트를 읽습니다.
매개 변수
| bytes:ByteArray —
데이터를 읽어들일 ByteArray 객체입니다.
|
| |
| offset:uint (default = 0) —
bytes 매개 변수에 대한 오프셋입니다. 이 위치에서 데이터 읽기를 시작합니다.
|
| |
| length:uint (default = 0) — 읽을 바이트 수입니다. 기본값인 0을 사용하면 읽을 수 있는 데이터를 모두 읽습니다. |
오류 public function readDouble():Number| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 IEEE 754 배정밀도 부동 소수점 숫자를 읽습니다.
반환값 | Number — IEEE 754 배정밀도 부동 소수점 숫자입니다. |
오류 public function readFloat():Number| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 IEEE 754 단정밀도 부동 소수점 숫자를 읽습니다.
반환값 | Number — IEEE 754 단정밀도 부동 소수점 숫자입니다. |
오류 public function readInt():int| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 부호 있는 32비트 정수를 읽습니다.
반환값 | int — 반환 값의 범위는 -2147483648에서 2147483647 사이입니다. |
오류 public function readMultiByte(length:uint, charSet:String):String| 런타임 버전: | AIR 1.0 Flash Player 9 |
지정된 문자 세트를 사용하여 파일 스트림, 바이트 스트림 또는 바이트 배열에서 지정된 길이의 멀티바이트 문자열을 읽습니다.
매개 변수
| length:uint — 바이트 스트림에서 읽을 바이트 수입니다. |
| |
| charSet:String —
바이트 해석에 사용할 문자 세트를 표시하는 문자열입니다. 사용할 수 있는 문자 세트 문자열에는 "shift-jis", "cn-gb", "iso-8859-1" 등이 있습니다. 전체 목록은 지원되는 문자 세트를 참조하십시오.
참고: 현재 시스템에서 charSet 매개 변수의 값을 인식하지 못하면 Adobe® Flash® Player 또는 Adobe® AIR™이 시스템의 기본 코드 페이지를 문자 세트로 사용합니다. 예를 들어 1 대신 01을 사용하는 myTest.readMultiByte(22, "iso-8859-01")의 경우처럼 charSet 매개 변수의 값이 사용자의 개발 컴퓨터에서는 작동하지만 다른 컴퓨터에서는 작동하지 않을 수 있습니다. 다른 컴퓨터에서는 Flash Player 또는 AIR 런타임이 시스템의 기본 코드 페이지를 사용합니다.
|
반환값오류 public function readObject():*| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 AMF 직렬 포맷으로 객체를 읽습니다.
반환값오류참고 사항
public function readShort():int| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 부호 있는 16비트 정수를 읽습니다.
반환값 | int — 반환 값의 범위는 -32768에서 32767 사이입니다. |
오류 public function readUnsignedByte():uint| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 부호 없는 바이트를 읽습니다.
반환값 | uint — 반환 값의 범위는 0에서 255 사이입니다. |
오류 public function readUnsignedInt():uint| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 부호 없는 32비트 정수를 읽습니다.
반환값 | uint — 반환 값의 범위는 0에서 4294967295 사이입니다. |
오류 public function readUnsignedShort():uint| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 부호 없는 16비트 정수를 읽습니다.
반환값 | uint — 반환 값의 범위는 0에서 65535 사이입니다. |
오류 public function readUTF():String| 런타임 버전: | AIR 1.0 Flash Player 9 |
파일 스트림, 바이트 스트림 또는 바이트 배열에서 UTF-8 문자열을 읽습니다. 문자열 앞에는 문자열의 길이를 바이트 단위로 나타내는 unsigned short가 있어야 합니다.
이 메서드는 Java® IDataInput 인터페이스의 readUTF() 메서드와 비슷합니다.
반환값 | String — 문자를 바이트로 나타내어 생성된 UTF-8 문자열입니다. |
오류 public function readUTFBytes(length:uint):String| 런타임 버전: | AIR 1.0 Flash Player 9 |
바이트 스트림 또는 바이트 배열에서 만큼의 UTF-8 바이트 시퀀스를 읽고 문자열을 반환합니다.
매개 변수
| length:uint — 읽을 바이트 수입니다. |
반환값 | String — 지정된 길이의 문자를 바이트로 나타내어 생성된 UTF-8 문자열입니다. |
오류
다음 예제에서는
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.
}
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Thu Jan 8 2009, 02:16 AM -08:00