JavaTM Platform
Standard Ed. 6

javax.imageio.stream
인터페이스 ImageInputStream

모든 슈퍼 인터페이스:
DataInput
기존의 서브 인터페이스의 일람:
ImageOutputStream
기존의 구현 클래스의 일람:
FileCacheImageInputStream , FileCacheImageOutputStream , FileImageInputStream , FileImageOutputStream , ImageInputStreamImpl , ImageOutputStreamImpl , MemoryCacheImageInputStream , MemoryCacheImageOutputStream


public interface ImageInputStream
extends DataInput

ImageReader 로 사용되는 시크 가능한 입력 스트림 인터페이스입니다. InputStreamFile 등이 다양한 입력 소스, 및 장래의 고속의 입출력 소스를, 이 인터페이스의 적절한 구현으로 「랩」하는 것으로, 이미지 입출력 API 로부터 사용 가능하게 할 수 있습니다.

관련 항목:
ImageInputStreamImpl , FileImageInputStream , FileCacheImageInputStream , MemoryCacheImageInputStream

메소드의 개요
 void close ()
          스트림을 닫습니다.
 void flush ()
          현재의 스트림 위치보다 전의 초기의 스트림 위치를 파기합니다.
 void flushBefore (long pos)
          지시받은 위치보다 전의 초기의 스트림 부분을 파기합니다.
 int getBitOffset ()
          현재의 비트 오프셋(offset)를 0 에서 7 까지의 정수로서 돌려줍니다.
 ByteOrder getByteOrder ()
          이 스트림로부터 읽히는 데이터의 바이트순서를,java.nio.ByteOrder 열거의 인스턴스로서 돌려줍니다.
 long getFlushedPosition ()
          시크가 실행되는 스트림내의 제일 초기의 위치를 돌려줍니다.
 long getStreamPosition ()
          스트림의 현재의 바이트 위치를 돌려줍니다.
 boolean isCached ()
          역시크를 가능하게 하기 위해서, 이 ImageInputStream 가 데이터 자체를 캐쉬에 포함하는 경우는 true 를 돌려줍니다.
 boolean isCachedFile ()
          이 ImageInputStream 가, 역시크를 가능하게 하기 위해서 데이터 자체를 캐쉬에 포함해, 캐쉬가 임시 파일에 보관 유지되는 경우는 true 를 돌려줍니다.
 boolean isCachedMemory ()
          이 ImageInputStream 가, 역시크를 유효하게 하기 위해서 데이터 자체를 캐쉬에 포함해, 캐쉬가 메인 메모리에 보관 유지되는 경우는 true 를 돌려줍니다.
 long length ()
          기존의 경우, 스트림의 전체 길이를 돌려줍니다.
 void mark ()
          그 후의 reset 호출로 반환되는 스트림내의 위치를 마크 붙이고 합니다.
 int read ()
          스트림로부터 1 바이트를 읽어들여, 그것을 0 에서 255 까지의 정수로서 돌려줍니다.
 int read (byte[] b)
          스트림로부터 b.length 바이트까지를 읽어들여,b 에 인덱스 0 으로부터 포함합니다.
 int read (byte[] b, int off, int len)
          스트림로부터 len 바이트까지 읽어들여,b 에 인덱스 off 로부터 포함합니다.
 int readBit ()
          스트림로부터 1 비트를 읽어들여, 그것을 값 0 또는 1int 로서 돌려줍니다.
 long readBits (int numBits)
          스트림로부터 비트열을 읽어들여,long 로서 돌려줍니다.
 boolean readBoolean ()
          스트림로부터 1 바이트를 읽어들여, 0 이 아닌 경우는 trueboolean 치를 돌려주어, 0 의 경우는 false 를 돌려줍니다.
 byte readByte ()
          스트림로부터 1 바이트를 읽어들여, 그것을 byte 치로서 돌려줍니다.
 void readBytes (IIOByteBuffer  buf, int len)
          스트림로부터 len 바이트까지를 읽어들여, 지정된 IIOByteBuffer 를 변경해 데이터를 검출 가능한 바이트 배열, 오프셋(offset), 및 길이를 나타냅니다.
 char readChar ()
          readUnsignedShort 와 동등, 다만 결과는 char 데이터형을 사용해 돌려주어집니다.
 double readDouble ()
          스트림로부터 8 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 double 치로서 돌려줍니다.
 float readFloat ()
          스트림로부터 4 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 float 치로서 돌려줍니다.
 void readFully (byte[] b)
          스트림로부터 b.length 바이트를 읽어들여, 그것들을 b 에 인덱스 0 으로부터 포함합니다.
 void readFully (byte[] b, int off, int len)
          스트림로부터 len 바이트를 읽어들여, 그것들을 b 에 인덱스 off 로부터 포함합니다.
 void readFully (char[] c, int off, int len)
          스트림로부터 현재의 바이트순서에 따라 len 바이트의 char (부호 없음 16 비트 정수) 치를 읽어들여, 그것들을 c 에 인덱스 off 로부터 포함합니다.
 void readFully (double[] d, int off, int len)
          스트림로부터 현재의 바이트순서에 따라 len 바이트의 double (64 비트 IEEE 배정밀도 부동 소수점수(실수)) 치를 읽어들여, 그것들을 d 에 인덱스 off 로부터 포함합니다.
 void readFully (float[] f, int off, int len)
          스트림로부터 현재의 바이트순서에 따라 len 바이트의 float (32 비트 IEEE 단정밀도 부동 소수점수(실수)) 치를 읽어들여, 그것들을 f 에 인덱스 off 로부터 포함합니다.
 void readFully (int[] i, int off, int len)
          스트림로부터 현재의 바이트순서에 따라 len 바이트의 int (부호 첨부 32 비트 정수) 치를 읽어들여, 그것들을 i 에 인덱스 off 로부터 포함합니다.
 void readFully (long[] l, int off, int len)
          스트림로부터 현재의 바이트순서에 따라 len 바이트의 long (부호 첨부 64 비트 정수) 치를 읽어들여, 그것들을 l 에 인덱스 off 로부터 포함합니다.
 void readFully (short[] s, int off, int len)
          스트림로부터 현재의 바이트순서에 따라 len 바이트의 short (부호 첨부 16 비트 정수) 치를 읽어들여, 그것들을 s 에 인덱스 off 로부터 포함합니다.
 int readInt ()
          스트림로부터 4 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 int 치로서 돌려줍니다.
 String readLine ()
          입력 스트림로부터, 다음의 행의 텍스트를 읽어들입니다.
 long readLong ()
          스트림로부터 8 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 long 치로서 돌려줍니다.
 short readShort ()
          스트림로부터 2 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 short 치로서 돌려줍니다.
 int readUnsignedByte ()
          스트림로부터 바이트를 읽어들여, 개념상, 정수로 변환해, 부호 확장 비트를 없애기 위해서(때문에) 그것을 0xff 로 마스크 해,byte 치로서 돌려줍니다.
 long readUnsignedInt ()
          스트림로부터 4 바이트를 읽어들여 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과의 값을 long 로 변환해, 부호 확장 비트를 없애기 위해서(때문에) 0xffffffffL 로 마스크 합니다.
 int readUnsignedShort ()
          스트림로부터 2 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과의 값을 int 로 변환해, 부호 확장 비트를 없애기 위해서(때문에) 0xffff 로 마스크 합니다.
 String readUTF ()
          수정 UTF-8 형식에서 encode 된 캐릭터 라인을 읽어들입니다.
 void reset ()
          최신의 불일치의 mark 호출 시점의, 비트 오프셋(offset)를 포함하기 이전의 위치를 가리키는 스트림 포인터를 돌려줍니다.
 void seek (long pos)
          현재의 스트림 위치를 목적의 위치로 설정합니다.
 void setBitOffset (int bitOffset)
          비트 오프셋(offset)에 0 에서 7 까지의 정수를 설정합니다.
 void setByteOrder (ByteOrder  byteOrder)
          이 스트림로부터의 향후의 데이터값의 읽을 위해(때문에), 바이트순서를 설정합니다.
 int skipBytes (int n)
          지정된 바이트수만큼 스트림 위치를 앞두고 이동합니다.
 long skipBytes (long n)
          지정된 바이트수만큼 스트림 위치를 앞두고 이동합니다.
 

메소드의 상세

setByteOrder

void setByteOrder(ByteOrder  byteOrder)
이 스트림로부터의 향후의 데이터값의 읽을 위해(때문에), 바이트순서를 설정합니다. 예를 들어,'0x01 0x02 0x03 0x04' 의 바이트 순서는, 4 바이트 정수로서 읽혔을 경우, 네트워크 바이트순서를 사용하면(자) ‘0x01020304' 의 값이 되어, 역바이트순서에서는 ‘0x04030201' 의 값이 됩니다.

열거 클래스 java.nio.ByteOrder 를 사용해 바이트순서를 지정합니다. 값 ByteOrder.BIG_ENDIAN 에서는, 고위의 바이트가 선두가 되는, 이른바 빅 endian (네트워크 바이트순서)가 지정됩니다. Motorola 와 Sparc 프로세서는 데이터를 이 형식에서 포함합니다. 한편 Intel 프로세서는, 데이터를 역순서의 ByteOrder.LITTLE_ENDIAN 로 포함합니다.

바이트순서는,readBits 메소드로부터 반환되는 결과 (ImageOutputStream.writeBits 에 의해 기입해지는 값)에는 영향을 주지 않습니다.

파라미터:
byteOrder - ByteOrder.BIG_ENDIAN 또는 java.nio.ByteOrder.LITTLE_ENDIAN 의 언젠가 (향후의 read로 네트워크 바이트순서 또는 그 역순서의 어느 쪽을 사용할까를 가리킨다)
관련 항목:
ByteOrder , getByteOrder() , readBits(int)

getByteOrder

ByteOrder  getByteOrder()
이 스트림로부터 읽히는 데이터의 바이트순서를,java.nio.ByteOrder 열거의 인스턴스로서 돌려줍니다.

반환값:
ByteOrder.BIG_ENDIAN 또는 ByteOrder.LITTLE_ENDIAN 의 언젠가 (사용되는 바이트순서를 나타낸다)
관련 항목:
ByteOrder , setByteOrder(java.nio.ByteOrder)

read

int read()
         throws IOException 
스트림로부터 1 바이트를 읽어들여, 그것을 0 에서 255 까지의 정수로서 돌려줍니다. 스트림의 마지막에 이르면(자) -1 를 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

반환값:
스트림로부터의 바이트치 (int), 또는 -1 (EOF 를 나타낸다)
예외:
IOException - 입출력 에러가 발생했을 경우

read

int read(byte[] b)
         throws IOException 
스트림로부터 b.length 바이트까지를 읽어들여,b 에 인덱스 0 으로부터 포함합니다. 읽어들인 바이트수를 돌려줍니다. 스트림의 마지막에 이르렀기 때문에 바이트를 읽어들일 수 없는 경우는,-1 을 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

파라미터:
b - 기입해지는 바이트 배열
반환값:
실제로 읽힌 바이트수, 또는 EOF 를 나타낸다 -1
예외:
NullPointerException - bnull 의 경우
IOException - 입출력 에러가 발생했을 경우

read

int read(byte[] b,
         int off,
         int len)
         throws IOException 
스트림로부터 len 바이트까지 읽어들여,b 에 인덱스 off 로부터 포함합니다. 읽어들인 바이트수를 돌려줍니다. 스트림의 마지막에 이르렀기 때문에 바이트를 읽어들일 수 없는 경우는,-1 을 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

파라미터:
b - 기입해지는 바이트 배열
off - 기입처의 b 내의 개시 위치
len - byte 의 최대 read수
반환값:
실제로 읽힌 바이트수, 또는 EOF 를 나타낸다 -1
예외:
NullPointerException - bnull 의 경우
IndexOutOfBoundsException - off 가 부, len 가 부, 또는 off + lenb.length 보다 큰 경우
IOException - 입출력 에러가 발생했을 경우

readBytes

void readBytes(IIOByteBuffer  buf,
               int len)
               throws IOException 
스트림로부터 len 바이트까지를 읽어들여, 지정된 IIOByteBuffer 를 변경해 데이터를 검출 가능한 바이트 배열, 오프셋(offset), 및 길이를 나타냅니다. 호출측에서,IIOByteBuffer 로 검출된 데이터를 변경 해서는 안됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

파라미터:
buf - 변경되는 IIOByteBuffer 객체
len - byte 의 최대 read수
예외:
IndexOutOfBoundsException - len 가 부의 경우
NullPointerException - bufnull 의 경우
IOException - 입출력 에러가 발생했을 경우

readBoolean

boolean readBoolean()
                    throws IOException 
스트림로부터 1 바이트를 읽어들여, 0 이 아닌 경우는 trueboolean 치를 돌려주어, 0 의 경우는 false 를 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readBoolean
반환값:
스트림로부터의 boolean 치
예외:
EOFException - 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readByte

byte readByte()
              throws IOException 
스트림로부터 1 바이트를 읽어들여, 그것을 byte 치로서 돌려줍니다. 0x00 에서 0x7f 까지의 바이트치는 0 에서 127 까지의 정수를 나타냅니다. 0x80 에서 0xff 까지의 값은 -128 으로부터 -1 까지의 0 보다 작은 값을 나타냅니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readByte
반환값:
스트림로부터의 부호 첨부 바이트치
예외:
EOFException - 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readUnsignedByte

int readUnsignedByte()
                     throws IOException 
스트림로부터 바이트를 읽어들여, 개념상, 정수로 변환해, 부호 확장 비트를 없애기 위해서(때문에) 그것을 0xff 로 마스크 해,byte 치로서 돌려줍니다.

따라서,0x00 에서 0x7f 까지의 바이트치는 0 에서 127 까지의 정수치로서 단순하게 돌려주어집니다. 일반적으로은 부의 byte 치를 나타내는 0x80 에서 0xff 까지의 값은,128 에서 255 까지의 정의 정수에 대응 붙이고 됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readUnsignedByte
반환값:
스트림로부터의 부호 없음 바이트치
예외:
EOFException - 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readShort

short readShort()
                throws IOException 
스트림로부터 2 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 short 치로서 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readShort
반환값:
스트림로부터의 부호 첨부 short 치
예외:
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
getByteOrder()

readUnsignedShort

int readUnsignedShort()
                      throws IOException 
스트림로부터 2 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과의 값을 int 로 변환해, 부호 확장 비트를 없애기 위해서(때문에) 0xffff 로 마스크 합니다. 그 결과를 부호 없음 int 치로서 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readUnsignedShort
반환값:
스트림로부터의 부호 없음 short 치의 int
예외:
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
getByteOrder()

readChar

char readChar()
              throws IOException 
readUnsignedShort 와 동등, 다만 결과는 char 데이터형을 사용해 돌려주어집니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readChar
반환값:
스트림로부터의 부호 없음 char 값
예외:
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
readUnsignedShort()

readInt

int readInt()
            throws IOException 
스트림로부터 4 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 int 치로서 돌려줍니다.

스트림내의 비트 오프셋(offset)는 무시되어 0 으로서 다루어집니다.

정의:
인터페이스 DataInput 내의 readInt
반환값:
스트림로부터의 부호 첨부 int 치
예외:
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
getByteOrder()

readUnsignedInt

long readUnsignedInt()
                     throws IOException 
스트림로부터 4 바이트를 읽어들여 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과의 값을 long 로 변환해, 부호 확장 비트를 없애기 위해서(때문에) 0xffffffffL 로 마스크 합니다. 그 결과를 부호 없음 long 치로서 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

반환값:
스트림로부터의 부호 없음 int 치 (long)
예외:
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
getByteOrder()

readLong

long readLong()
              throws IOException 
스트림로부터 8 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 long 치로서 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readLong
반환값:
스트림로부터의 부호 첨부 long 치
예외:
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
getByteOrder()

readFloat

float readFloat()
                throws IOException 
스트림로부터 4 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 float 치로서 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readFloat
반환값:
스트림로부터의 float 치
예외:
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
getByteOrder()

readDouble

double readDouble()
                  throws IOException 
스트림로부터 8 바이트를 읽어들여, 현재의 바이트순서에 따라 개념상 그것들을 연결해, 결과를 double 치로서 돌려줍니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readDouble
반환값:
스트림로부터의 double 치
예외:
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
getByteOrder()

readLine

String  readLine()
                throws IOException 
입력 스트림로부터, 다음의 행의 텍스트를 읽어들입니다. 이 메소드는, 줄 끝 기호 또는 파일의 마지막을 검출할 때까지, 연속하는 바이트를 읽어들여, 각 바이트를 각각 문자로 변환합니다. 읽힌 문자는 다음에,String 로서 돌려주어집니다. 이 메소드는 바이트를 처리하는 것이므로, Unicode 캐릭터 세트의 입력을 완전하게는 지원하지 않습니다.

파일의 마지막이 검출 될 때까지 1 바이트도 읽어들일 수 없었던 경우에는,null 가 돌려주어집니다. 그렇지 않은 경우, 읽힌 각 바이트는 제로 확장에 의해 char 형에 변환됩니다. 문자 '\n' 가 검출되면(자), 이 문자는 파기되어 read는 중지됩니다. 문자 '\r' 가 검출되면(자), 이 문자는 파기되어 그 다음의 바이트가 문자 '\n' 에 변환됩니다만, 이 문자도 파기되어, read가 중지됩니다. 문자 '\n' 와 문자 '\r' 의 어느 쪽인지 보다 전에 파일의 마지막이 검출되면(자), read가 중지됩니다. read가 중지되면(자), 읽혀 파기되어 있지 않은 모든 문자를 수중에 넣은 차례로 포함하고 있는 String 가 돌려주어집니다. 이 캐릭터 라인의 각각의 문자는 \u0100, 즉 (char) 256 보다 작은 값을 가집니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readLine
반환값:
스트림로부터의 텍스트행을 포함한 String
예외:
IOException - 입출력 에러가 발생했을 경우

readUTF

String  readUTF()
               throws IOException 
수정 UTF-8 형식에서 encode 된 캐릭터 라인을 읽어들입니다. readUTF 의 범용 규약에서는, 수정 UTF-8 형식에서 encode 된 Unicode 캐릭터 라인의 표현을 읽어들입니다. 읽힌 캐릭터 라인은,String 로서 돌려주어집니다.

우선, 2 바이트를 읽어들여, 그것을 사용해 readUnsignedShort 메소드와 완전히 같은 방법으로 부호 없음 16 비트 정수를 작성합니다. 이 때, 현재의 바이트순서의 설정에 관계없이 네트워크 바이트순서를 사용합니다. 이 정수치는 「UTF 장」이라고 불려 읽히는 추가의 바이트수를 나타냅니다. 다음에, 이 바이트가 그룹 단위로 문자에 변환됩니다. 각 그룹의 길이는, 그룹의 선두 바이트의 값으로부터 계산됩니다. 그룹에 후속의 바이트가 있으면, 그것은 다음의 그룹의 선두 바이트입니다.

그룹의 선두 바이트가 비트 패턴의 0xxxxxxx (다만,x0 또는 1 을 의미한다)에 일치하는 경우, 그룹은 그 바이트만으로 구성됩니다. 바이트는 제로 확장되어 단일의 문자를 표현합니다.

그룹의 선두 바이트가 비트 패턴 110xxxxx 에 일치하는 경우, 그 그룹은 그 바이트 a 와 2 번째의 바이트 b 로부터 구성됩니다. 바이트 b 가 존재하지 않는 경우 (바이트 a 가 읽힌 마지막 바이트였던 경우)나, 바이트 b 가 비트 패턴 10xxxxxx 에 일치하지 않는 경우에는,UTFDataFormatException 가 throw 됩니다. 그렇지 않은 경우, 그룹은 다음의 문자에 변환됩니다.


 (char)(((a& 0x1F) << 6) | (b & 0x3F))
 
그룹의 선두 바이트가 비트 패턴 1110xxxx 에 일치하는 경우, 그 그룹은 선두 바이트 a 에 가세해, 2 살의 바이트 bc 로부터 구성됩니다. 바이트 c 가 존재하지 않는 경우 (바이트 a 가 읽힌 일련의 바이트의 마지막 2 개(살)에 들어가 있었을 경우)나, 바이트 b 또는 c 가 비트 패턴 10xxxxxx 에 일치하지 않는 경우에는,UTFDataFormatException 가 throw 됩니다. 그렇지 않은 경우, 그룹은 다음의 문자에 변환됩니다.


 (char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
 
그룹의 선두 바이트가 패턴 1111xxxx 나 패턴 10xxxxxx 에 일치하는 경우,UTFDataFormatException 가 throw 됩니다.

이 처리 전체의 어디선가 파일의 마지막이 검출되면(자),EOFException 가 throw 됩니다.

각 그룹이 이 처리로 1 문자에 변환되면(자), 대응하는 그룹이 입력 스트림로부터 읽힌 것과 같은 순서로 각 문자가 수집되어String 를 표현합니다. 그리고, 이 String 가 돌려주어집니다.

현재의 바이트순서의 설정은 무시됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

주: 여기서 사용되는 수정 UTF-8 는 표준 UTF-8 와 호환성이 없습니다. 이 때문에, 표준 UTF-8 를 사용하는 이미지 형식의 구현에서는 이 메소드를 사용하지 말아 주세요.

정의:
인터페이스 DataInput 내의 readUTF
반환값:
스트림로부터 읽힌 String
예외:
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
UTFDataFormatException - 캐릭터 라인중의 바이트가, 유효한 수정 UTF-8 형식에서 encode 된 캐릭터 라인 이외에서 만났을 경우
IOException - 입출력 에러가 발생했을 경우

readFully

void readFully(byte[] b,
               int off,
               int len)
               throws IOException 
스트림로부터 len 바이트를 읽어들여, 그것들을 b 에 인덱스 off 로부터 포함합니다. 스트림의 마지막에 이르면(자), EOFException 가 throw 됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readFully
파라미터:
b - 기입해지는 바이트 배열
off - 기입처의 b 내의 개시 위치
len - byte 의 최대 read수
예외:
IndexOutOfBoundsException - off 가 부, len 가 부, 또는 off + lenb.length 보다 큰 경우
NullPointerException - bnull 의 경우
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readFully

void readFully(byte[] b)
               throws IOException 
스트림로부터 b.length 바이트를 읽어들여, 그것들을 b 에 인덱스 0 으로부터 포함합니다. 스트림의 마지막에 이르면(자), EOFException 가 throw 됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

정의:
인터페이스 DataInput 내의 readFully
파라미터:
b - byte 의 배열
예외:
NullPointerException - bnull 의 경우
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readFully

void readFully(short[] s,
               int off,
               int len)
               throws IOException 
스트림로부터 현재의 바이트순서에 따라 len 바이트의 short (부호 첨부 16 비트 정수) 치를 읽어들여, 그것들을 s 에 인덱스 off 로부터 포함합니다. 스트림의 마지막에 이르면(자), EOFException 가 throw 됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

파라미터:
s - 기입해지는 short 배열
off - 기입처의 b 내의 개시 위치
len - short 의 최대 read수
예외:
IndexOutOfBoundsException - off 가 부, len 가 부, 또는 off + lens.length 보다 큰 경우
NullPointerException - snull 의 경우
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readFully

void readFully(char[] c,
               int off,
               int len)
               throws IOException 
스트림로부터 현재의 바이트순서에 따라 len 바이트의 char (부호 없음 16 비트 정수) 치를 읽어들여, 그것들을 c 에 인덱스 off 로부터 포함합니다. 스트림의 마지막에 이르면(자), EOFException 가 throw 됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

파라미터:
c - 기입해지는 char 배열
off - 기입처의 b 내의 개시 위치
len - char 의 최대 read수
예외:
IndexOutOfBoundsException - off 가 부, len 가 부, 또는 off + lenc.length 보다 큰 경우
NullPointerException - c 가 null 의 경우 null 의 경우
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readFully

void readFully(int[] i,
               int off,
               int len)
               throws IOException 
스트림로부터 현재의 바이트순서에 따라 len 바이트의 int (부호 첨부 32 비트 정수) 치를 읽어들여, 그것들을 i 에 인덱스 off 로부터 포함합니다. 스트림의 마지막에 이르면(자), EOFException 가 throw 됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

파라미터:
i - 기입해지는 int 배열
off - 기입처의 b 내의 개시 위치
len - int 의 최대 read수
예외:
IndexOutOfBoundsException - off 가 부, len 가 부, 또는 off + leni.length 보다 큰 경우
NullPointerException - inull 의 경우
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readFully

void readFully(long[] l,
               int off,
               int len)
               throws IOException 
스트림로부터 현재의 바이트순서에 따라 len 바이트의 long (부호 첨부 64 비트 정수) 치를 읽어들여, 그것들을 l 에 인덱스 off 로부터 포함합니다. 스트림의 마지막에 이르면(자), EOFException 가 throw 됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

파라미터:
l - 기입해지는 long 배열
off - 기입처의 b 내의 개시 위치
len - long 의 최대 read수
예외:
IndexOutOfBoundsException - off 가 부, len 가 부, 또는 off + lenl.length 보다 큰 경우
NullPointerException - lnull 의 경우
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readFully

void readFully(float[] f,
               int off,
               int len)
               throws IOException 
스트림로부터 현재의 바이트순서에 따라 len 바이트의 float (32 비트 IEEE 단정밀도 부동 소수점수(실수)) 치를 읽어들여, 그것들을 f 에 인덱스 off 로부터 포함합니다. 스트림의 마지막에 이르면(자), EOFException 가 throw 됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

파라미터:
f - 기입해지는 float 배열
off - 기입처의 b 내의 개시 위치
len - float 의 최대 read수
예외:
IndexOutOfBoundsException - off 가 부, len 가 부, 또는 off + lenf.length 보다 큰 경우
NullPointerException - fnull 의 경우
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readFully

void readFully(double[] d,
               int off,
               int len)
               throws IOException 
스트림로부터 현재의 바이트순서에 따라 len 바이트의 double (64 비트 IEEE 배정밀도 부동 소수점수(실수)) 치를 읽어들여, 그것들을 d 에 인덱스 off 로부터 포함합니다. 스트림의 마지막에 이르면(자), EOFException 가 throw 됩니다.

스트림내의 비트 오프셋(offset)는, read를 실시하기 전에 0 에 리셋 됩니다.

파라미터:
d - 기입해지는 double 배열
off - 기입처의 b 내의 개시 위치
len - double 의 최대 read수
예외:
IndexOutOfBoundsException - off 가 부, len 가 부, 또는 off + lend.length 보다 큰 경우
NullPointerException - dnull 의 경우
EOFException - 모든 바이트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

getStreamPosition

long getStreamPosition()
                       throws IOException 
스트림의 현재의 바이트 위치를 돌려줍니다. 다음의 read는 이 오프셋(offset)로부터 개시됩니다.

반환값:
스트림의 위치를 포함한 long
예외:
IOException - 입출력 에러가 발생했을 경우

getBitOffset

int getBitOffset()
                 throws IOException 
현재의 비트 오프셋(offset)를 0 에서 7 까지의 정수로서 돌려줍니다. 비트 오프셋(offset)는,readBits 메소드의 호출로 암묵적으로 갱신됩니다. 값 0 은 읽히는 바이트의 최상정도 비트, 값 7 은 최하정도 비트를 나타냅니다.

비트 오프셋(offset)는, 스트림을 최초로 열 때 0 으로 설정되어seek,skipBytes, 또는 readreadFully 메소드중 한쪽이 불려 가면(자) 0 에 리셋 됩니다.

반환값:
0 에서 7 까지의 오프셋(offset)치를 포함한다 int
예외:
IOException - 입출력 에러가 발생했을 경우
관련 항목:
setBitOffset(int)

setBitOffset

void setBitOffset(int bitOffset)
                  throws IOException 
비트 오프셋(offset)에 0 에서 7 까지의 정수를 설정합니다. getStreamPosition 로부터 반환되는, 스트림내의 바이트 오프셋(offset)는 변경되지 않습니다. 값 0 은 읽히는 바이트의 최상정도 비트, 값 7 은 최하정도 비트를 나타냅니다.

파라미터:
bitOffset - 목적의 오프셋(offset)로, 0 에서 7 까지의 int
예외:
IllegalArgumentException - bitOffset 가 0 에서 7 의 범위에 없는 경우
IOException - 입출력 에러가 발생했을 경우
관련 항목:
getBitOffset()

readBit

int readBit()
            throws IOException 
스트림로부터 1 비트를 읽어들여, 그것을 값 0 또는 1int 로서 돌려줍니다. 비트 오프셋(offset)는 1 두개증가해, 8 을 법으로서 감 분 합니다.

반환값:
0 또는 1int
예외:
EOFException - 모든 비트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

readBits

long readBits(int numBits)
              throws IOException 
스트림로부터 비트열을 읽어들여,long 로서 돌려줍니다. 읽어들인 최초의 비트가 출력의 최상정도 비트가 됩니다. read는,getStreamPosition 로 지정되는 바이트내의 getBitOffset 로 지정되는 비트 위치로부터 개시됩니다. 비트 오프셋(offset)는 numBits 두개증가해, 8 을 법으로서 감 분 합니다.

스트림의 바이트순서는 이 메소드에 영향을 주지 않습니다. 이 메소드의 반환값은 비트가 동시에 읽혔는지와 같이 구축되어 반환값의 우측으로 쉬프트 됩니다. 이것을 다음의 의사 코드로 가리킵니다.

 long accum = 0L;
 for (int i = 0; i < numBits; i++) {
   accum <<= 1; // Shift left one bit to make room
   accum |= readBit();
 }
 
따라서, 역네트워크 바이트순서가 사용되고 있는 경우 (즉,getByteOrder() == false),readBits(32) 의 결과가 readInt() 의 결과와 다른 경우가 있습니다.

모든 비트를 읽어들이기 전에 스트림의 마지막을 검출했을 경우,EOFException 가 throw 됩니다.

파라미터:
numBits - 읽어들이는 비트수를 나타낸다 0 에서 64 까지의 int
반환값:
마지막에 읽어들인 비트를 최하정도 비트에 포함했다 long 의 비트열
예외:
IllegalArgumentException - numBits 가 0 에서 64 의 범위내에 없는 경우
EOFException - 모든 비트를 읽어들이기 전에, 이 스트림의 마지막에 이르렀을 경우
IOException - 입출력 에러가 발생했을 경우

length

long length()
            throws IOException 
기존의 경우, 스트림의 전체 길이를 돌려줍니다. 그렇지 않은 경우는 -1 을 돌려줍니다.

반환값:
기존의 경우는 스트림의 길이의 long, 그렇지 않은 경우는 -1
예외:
IOException - 입출력 에러가 발생했을 경우

skipBytes

int skipBytes(int n)
              throws IOException 
지정된 바이트수만큼 스트림 위치를 앞두고 이동합니다. 예를 들어 스트림의 마지막에 이르렀을 경우, 이 메소드는 요구되었던 것보다도 적은 바이트수만큼 전에 스킵 할 수 있습니다. 어느 경우에서도, 실제로 스킵 된 바이트수가 돌려주어집니다. 위치의 전진은, 비트 오프셋(offset)가 0 에 리셋 되고 나서 행해집니다.

정의:
인터페이스 DataInput 내의 skipBytes
파라미터:
n - 스킵 하는 바이트수를 포함한다 int
반환값:
스킵 된 바이트수를 나타내는 int
예외:
IOException - 입출력 에러가 발생했을 경우

skipBytes

long skipBytes(long n)
               throws IOException 
지정된 바이트수만큼 스트림 위치를 앞두고 이동합니다. 이 메소드는 skipBytes(int) 와 같습니다만, 한층 더 멀어진 위치까지 스킵 할 수 있습니다.

파라미터:
n - 스킵 하는 바이트수를 포함한다 long
반환값:
스킵 된 바이트수를 나타낸다 long
예외:
IOException - 입출력 에러가 발생했을 경우

seek

void seek(long pos)
          throws IOException 
현재의 스트림 위치를 목적의 위치로 설정합니다. 다음번의 read는 이 정도치로 행해집니다. 비트 오프셋(offset)는 0 으로 설정됩니다.

posgetflushedPosition 로부터 반환되는 플래시 위치보다 작은 경우는,IndexOutOfBoundsException 가 throw 됩니다.

시크로 파일의 마지막을 통과하는 것은 정상적이고,EOFException 는 읽을 경우만 throw 됩니다.

파라미터:
pos - 목적의 파일 포인터 위치를 나타낸다 long
예외:
IndexOutOfBoundsException - pos 가 플래시 위치보다 작은 경우
IOException - 그 외의 입출력 에러가 발생했을 경우

mark

void mark()
그 후의 reset 호출로 반환되는 스트림내의 위치를 마크 붙이고 합니다. 표준의 InputStream 과는 달리,ImageInputStream 는 모두 마크부를 지원합니다. 게다가markreset 의 호출은, 임의에 네스트화할 수가 있습니다.

ReaderInputStream 인터페이스로 선언되는 mark 메소드와는 달라,readLimit 파라미터는 사용되지 않습니다. mark 의 호출에 이어 임의의 데이터량을 읽어들일 수가 있습니다.

readBits 메소드로 사용되는 비트 위치는 보존되어markreset 를 페어로 호출할 때마다 복원됩니다.

ImageReader 는, read 조작의 일부로서 flushBefore 를 호출할 수가 있는 것에 유의해 주세요. 이 때문에, 어플리케이션이 스트림을 ImageReader 에 건네주기 전에 mark 를 호출하는 경우, read 조작이 완료한 후도 마크 위치가 유효하다라고 생각해야 하는 것이 아닙니다.


reset

void reset()
           throws IOException 
최신의 불일치의 mark 호출 시점의, 비트 오프셋(offset)를 포함하기 이전의 위치를 가리키는 스트림 포인터를 돌려줍니다.

대응하는 mark 를 호출하지 않고 reset 를 호출하는 경우에는 영향 없습니다.

이전에 마크 붙이고 된 위치가 스트림의 파기된 부분인 경우에는 IOException 가 throw 됩니다.

예외:
IOException - 입출력 에러가 발생했을 경우

flushBefore

void flushBefore(long pos)
                 throws IOException 
지시받은 위치보다 전의 초기의 스트림 부분을 파기합니다. 스트림의 플래시 된 부분내의 오프셋(offset)에 시크 하려고 하면(자),IndexOutOfBoundsException 가 throw 됩니다.

flushBefore 를 호출하면(자), 이 인터페이스를 구현하는 클래스가, 스트림로부터 데이터를 포함하는데 사용하는 메모리나 디스크 스페이스등의 자원을 해제할 수 있습니다.

파라미터:
pos - 플래시 되는 스트림 접두사의 길이를 나타내는 long
예외:
IndexOutOfBoundsException - pos 가 스트림의 플래시 부분에 있는지, 또는 현재의 스트림 위치를 통과했을 경우
IOException - 입출력 에러가 발생했을 경우

flush

void flush()
           throws IOException 
현재의 스트림 위치보다 전의 초기의 스트림 위치를 파기합니다. flushBefore(getStreamPosition()) 와 같습니다.

예외:
IOException - 입출력 에러가 발생했을 경우

getFlushedPosition

long getFlushedPosition()
시크가 실행되는 스트림내의 제일 초기의 위치를 돌려줍니다. 반환값은, 이전의 flushBefore 호출에게 건네진 모든 값의 최대치가 됩니다.

반환값:
제일 초기의 정당한 시크 위치를 나타낸다 long

isCached

boolean isCached()
역시크를 가능하게 하기 위해서, 이 ImageInputStream 가 데이터 자체를 캐쉬에 포함하는 경우는 true 를 돌려줍니다. 어플리케이션은 캐쉬 자원을 절약하기 위해서, 이것을 참조해 플래시의 빈도, 또는 플래시 할지 어떨지를 결정할 수 있습니다.

반환값:
ImageInputStream 가 데이터를 캐쉬에 포함하는 경우는 true
관련 항목:
isCachedMemory() , isCachedFile()

isCachedMemory

boolean isCachedMemory()
ImageInputStream 가, 역시크를 유효하게 하기 위해서 데이터 자체를 캐쉬에 포함해, 캐쉬가 메인 메모리에 보관 유지되는 경우는 true 를 돌려줍니다. 어플리케이션은 캐쉬 자원을 절약하기 위해서, 이것을 참조해 플래시의 빈도, 또는 플래시 할지 어떨지를 결정할 수 있습니다.

반환값:
ImageInputStream 가 데이터를 메인 메모리에 캐쉬하는 경우는 true
관련 항목:
isCached() , isCachedFile()

isCachedFile

boolean isCachedFile()
ImageInputStream 가, 역시크를 가능하게 하기 위해서 데이터 자체를 캐쉬에 포함해, 캐쉬가 임시 파일에 보관 유지되는 경우는 true 를 돌려줍니다. 어플리케이션은 캐쉬 자원을 절약하기 위해서, 이것을 참조해 플래시의 빈도, 또는 플래시 할지 어떨지를 결정할 수 있습니다.

반환값:
ImageInputStream 가 데이터를 임시 파일에 캐쉬하는 경우는 true
관련 항목:
isCached() , isCachedMemory()

close

void close()
           throws IOException 
스트림을 닫습니다. 닫은 스트림에 액세스 하려고 하면(자), IOException 가 throw 될까 부정한 동작이 실행되는 경우가 있습니다. 이 메소드를 호출하면(자), 이 인터페이스를 구현하는 클래스가, 메모리, 디스크 스페이스, 또는 파일 기술자등의 스트림에 관련하는 자원을 해제할 수 있습니다.

예외:
IOException - 입출력 에러가 발생했을 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.