패키지flash.utils
인터페이스public interface IDataInput
구현자ByteArray, Socket, URLStream

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

IDataInput 인터페이스는 이진 데이터를 읽는 메서드 집합을 제공합니다. 이는 이진 데이터를 쓰는 IDataOutput 인터페이스에 대응되는 I/O 인터페이스입니다.

기본적으로 모든 IDataInput 및 IDataOutput 작업은 시퀀스의 최상위 바이트가 저장소에서 가장 낮은 첫 번째 주소에 저장되는 "bigEndian"이며 비블로킹 방식입니다. 사용할 수 있는 데이터가 부족하면 EOFError 예외가 발생합니다. 읽을 수 있는 데이터의 양을 확인하려면 IDataInput.bytesAvailable 속성을 사용합니다.

부호 확장은 데이터를 쓸 때가 아닌 데이터를 읽을 때만 의미가 있습니다. 따라서 IDataInput.readUnsignedByte()IDataInput.readUnsignedShort()와 함께 사용할 별도의 쓰기 메서드는 필요하지 않습니다. 다시 말하자면 다음과 같습니다.

예제를 통해 확인하십시오.

참고 사항

IDataOutput interface
endian
Socket class
URLStream class
ByteArray class
EOFError class


Public 속성
 속성다음에 의해 정의됨
  bytesAvailable : uint
[read-only] 입력 버퍼에서 읽을 수 있는 데이터 바이트 수를 반환합니다.
IDataInput
  endian : String
데이터의 바이트 순서이며 Endian 클래스의 "bigEndian" 또는 "littleEndian" 상수입니다.
IDataInput
  objectEncoding : uint
이진 데이터를 쓰거나 읽을 때 ActionScript 3.0, ActionScript 2.0 또는 ActionScript 1.0 형식을 사용할지 여부를 확인하는 데 사용합니다.
IDataInput
Public 메서드
 메서드다음에 의해 정의됨
  
바이트 스트림 또는 바이트 배열에서 부울 값을 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 부호 있는 바이트를 읽습니다.
IDataInput
  
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
바이트 스트림 또는 바이트 배열에서 length 매개 변수로 지정된 데이터 바이트 수를 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 IEEE 754 배정밀도 부동 소수점 숫자를 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 IEEE 754 단정밀도 부동 소수점 숫자를 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 부호 있는 32비트 정수를 읽습니다.
IDataInput
  
readMultiByte(length:uint, charSet:String):String
지정된 문자 세트를 사용하여 바이트 스트림에서 지정된 길이의 멀티바이트 문자열을 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 AMF 직렬 형식으로 인코딩된 객체를 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 부호 있는 16비트 정수를 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 부호 없는 바이트를 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 부호 없는 32비트 정수를 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 부호 없는 16비트 정수를 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 UTF-8 문자열을 읽습니다.
IDataInput
  
바이트 스트림 또는 바이트 배열에서 길이만큼의 UTF-8 바이트 시퀀스를 읽고 문자열을 반환합니다.
IDataInput
속성 정보
bytesAvailable속성
bytesAvailable:uint  [read-only]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

입력 버퍼에서 읽을 수 있는 데이터 바이트 수를 반환합니다. 읽기 메서드 중 하나를 사용하여 데이터를 읽기 전에 사용자 코드에서 bytesAvailable을 호출하여 읽을 수 있는 데이터가 충분한지 확인해야 합니다.


구현
    public function get bytesAvailable():uint
endian속성 
endian:String  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

데이터의 바이트 순서이며 Endian 클래스의 "bigEndian" 또는 "littleEndian" 상수입니다.


구현
    public function get endian():String
    public function set endian(value:String):void

참고 사항

objectEncoding속성 
objectEncoding:uint  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

이진 데이터를 쓰거나 읽을 때 ActionScript 3.0, ActionScript 2.0 또는 ActionScript 1.0 형식을 사용할지 여부를 확인하는 데 사용합니다. 값은 ObjectEncoding 클래스의 상수입니다.


구현
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

참고 사항

메서드 정보
readBoolean()메서드
public function readBoolean():Boolean

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 부울 값을 읽습니다. 단일 바이트를 읽고 해당 바이트가 0이 아니면 true를, 그렇지 않으면 false를 반환합니다.

반환값
Boolean — 부울 값으로, 바이트가 0이 아니면 true이고 그렇지 않으면 false입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readByte()메서드 
public function readByte():int

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 부호 있는 바이트를 읽습니다.

반환값
int — 반환 값의 범위는 -128에서 127 사이입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readBytes()메서드 
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 length 매개 변수로 지정된 데이터 바이트 수를 읽습니다. offset에 지정된 위치부터 bytes 매개 변수에 지정된 ByteArray 객체로 바이트를 읽습니다.

매개 변수

bytes:ByteArray — 데이터를 읽어들일 ByteArray 객체입니다.
 
offset:uint (default = 0)bytes 매개 변수에 대한 오프셋입니다. 이 위치에서 데이터 읽기를 시작합니다.
 
length:uint (default = 0) — 읽을 바이트 수입니다. 기본값인 0을 사용하면 읽을 수 있는 데이터를 모두 읽습니다.


오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readDouble()메서드 
public function readDouble():Number

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 IEEE 754 배정밀도 부동 소수점 숫자를 읽습니다.

반환값
Number — IEEE 754 배정밀도 부동 소수점 숫자입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readFloat()메서드 
public function readFloat():Number

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 IEEE 754 단정밀도 부동 소수점 숫자를 읽습니다.

반환값
Number — IEEE 754 단정밀도 부동 소수점 숫자입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readInt()메서드 
public function readInt():int

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 부호 있는 32비트 정수를 읽습니다.

반환값
int — 반환 값의 범위는 -2147483648에서 2147483647 사이입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readMultiByte()메서드 
public function readMultiByte(length:uint, charSet:String):String

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

지정된 문자 세트를 사용하여 바이트 스트림에서 지정된 길이의 멀티바이트 문자열을 읽습니다.

매개 변수

length:uint — 바이트 스트림에서 읽을 바이트 수입니다.
 
charSet:String — 바이트 해석에 사용할 문자 세트를 표시하는 문자열입니다. 사용할 수 있는 문자 세트 문자열에는 "shift-jis", "cn-gb", "iso-8859-1" 등이 있습니다. 전체 목록은 Supported Character Sets를 참조하십시오.

참고: 현재 시스템에서 charSet 매개 변수의 값을 인식하지 못하면 Flash Player에서 시스템의 기본 코드 페이지를 문자 세트로 사용합니다. 예를 들어 1이 아니라 01을 사용하는 myTest.readMultiByte(22, "iso-8859-01")의 경우처럼 charSet 매개 변수의 값이 사용자의 개발 컴퓨터에서는 작동하지만 다른 컴퓨터에서는 작동하지 않을 수 있습니다. 다른 컴퓨터에서는 Flash Player에서 시스템의 기본 코드 페이지를 사용합니다.

반환값
String — UTF-8 인코딩 문자열입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readObject()메서드 
public function readObject():*

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 AMF 직렬 형식으로 인코딩된 객체를 읽습니다.

반환값
* — 직렬화가 해제된 객체입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.

참고 사항

readShort()메서드 
public function readShort():int

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 부호 있는 16비트 정수를 읽습니다.

반환값
int — 반환 값의 범위는 -32768에서 32767 사이입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readUnsignedByte()메서드 
public function readUnsignedByte():uint

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 부호 없는 바이트를 읽습니다.

반환값
uint — 반환 값의 범위는 0에서 255 사이입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readUnsignedInt()메서드 
public function readUnsignedInt():uint

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 부호 없는 32비트 정수를 읽습니다.

반환값
uint — 반환 값의 범위는 0에서 4294967295 사이입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readUnsignedShort()메서드 
public function readUnsignedShort():uint

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 부호 없는 16비트 정수를 읽습니다.

반환값
uint — 반환 값의 범위는 0에서 65535 사이입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readUTF()메서드 
public function readUTF():String

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 UTF-8 문자열을 읽습니다. 문자열 앞에는 문자열의 길이를 바이트 단위로 나타내는 unsigned short가 있어야 합니다.

이 메서드는 Java IDataInput 인터페이스의 readUTF() 메서드와 비슷합니다.

반환값
String — 문자를 바이트로 나타내어 생성된 UTF-8 문자열입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
readUTFBytes()메서드 
public function readUTFBytes(length:uint):String

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

바이트 스트림 또는 바이트 배열에서 length만큼의 UTF-8 바이트 시퀀스를 읽고 문자열을 반환합니다.

매개 변수

length:uint

반환값
String — 지정된 길이의 문자를 바이트로 나타내어 생성된 UTF-8 문자열입니다.

오류
EOFError — 읽을 수 있는 데이터가 충분하지 않습니다.
예제 예제 사용 방법
DataInputExample.as

다음 예제에서는 DataInputExample 클래스를 사용하여 부울 값과 원주율의 배정밀도 부동 소수점 표현을 바이트 배열에 씁니다. 이는 다음 단계로 이루어집니다.
  1. 새 ByteArray 객체 인스턴스인 byteArr을 선언합니다.
  2. 부울 값 false에 해당하는 바이트 값과 원주율의 수학적 값에 해당하는 배정밀도 부동 소수점 값을 씁니다.
  3. 부울 값 및 배정밀도 부동 소수점 숫자를 다시 읽습니다.

코드 끝에 파일 끝 오류를 검사하는 코드 조각이 추가되어 있습니다. 이렇게 하면 바이트 스트림의 끝에 도달할 때 읽기를 멈출 수 있습니다.

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




 

이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서

현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/ActionScriptLangRefV3/flash/utils/IDataInput.html