■ FileInputStream과 InputStream
FileInputStream 클래스를 이용하여 인스턴스를 만들었으면 이제 FileInputStream의 메소드를 이용하여 데이터를 읽어오면 된다. 이때 InputStream 클래스를 살펴보아야 한다.
InputSream 클래스는 바이트 단위로 데이터를 읽어들이는 모든 입력 스트림이 상속하는 최상위 클래스이다. 이 클래스에서 정의하는 대표적인 메소드는 두가지가 있다
- public abstract int read() throw IOException
- public void close() throw IOException
read 메소드는 1바이트의 데이터를 읽어서 변환하는 메소드이다. 하지만 다시한번 보면 이 메소드는 abstract로 선언이 되어있다. 이러한 이유는 InputStream을 상속하는 다른 클래스(FileInputStream이 아닌 클래스)에서도 read 메소드를 사용할 수 있기 때문에 abstract(추상형)으로 선언한다. read 메소드의 사용법은
InputStream in = new FileInputStream("input.exe");
int bData = in.read(); // 오버라이딩 덕분에 FileIputStream의 read 호출 가능
와 같이 사용하면 bData에 데이터를 저장한다 그리고 bData가 int 형인 이유는 데이터를 읽어 들일때 더 이상 읽어올 데이터가 없을 경우 -1을 반환하기 때문이다. 그래서 데이터를 모두 읽어 올때는 아래와 같이 사용하여야 한다.
InputStream in = new FileInputStream("input.exe");
while(true)
{
int bData = in.read();
if(bData == -1 )
break ;
---------------------
}
in,close(); // 입력 스트림 소멸
'Programming' 카테고리의 다른 글
[Android] View (0) | 2013.09.29 |
---|---|
[Info] 프로그래밍 언어 (0) | 2013.06.15 |
[JAVA] 출력 스트림 ( OutputStream ) (0) | 2013.06.06 |
[JAVA] I/O모델과 스트림 (0) | 2013.06.05 |
[JAVA] I/O 스트림 (0) | 2013.06.05 |