바이트 단위 IO 클래스
바이트 단위 IO 클래스는 가장 기본이 되는 IO 클래스다.
컴퓨터에 존재하는 모든 데이터는 바이트 단위로 구성되어 있기 때문이다. 바이트 스트림 클래스는 모두 추상 클래스(abstractclass)인 InputStream과 OutputSream의 자식(하위) 클래스다. 이는 입력과 관련된 모든 바이트 스트림은 InputStream에 있는 메소드를 포함하며, 출려과 관련된 모든 바이트 스트림은 OutputStream에 있는 메소드를 포함한다.
InputStream과 OutputStream
InputStream과 OutputStream은 모든 바이트 스트림의 최상위 클래스다.
InputStream과 OutputStream 클래스는 추상클래스로서, 바이트 단위로 입출력하기 위한 가장 기본적인 메소드가 있다.
InputStream의 중요 메소드
InputStream은 바이트 단위로 입력 받기 위한 클래스라고 했다. 그런데 위에서 보면 read() 메소드를 통해 byte형을 반환하는 것이 아니라 int형을 반환하는 것을 알 수 있다. 그 이유는 byte형으로 반환할 경우, 파일 끝을 나타내는 기호로 사용할 마당한 값이 없기 때문이다.
이런 이유로 -1을 반환할 수 있는 int형을 사용하게 된다. 따라서 read() 메소드는 정수 하위 8비트에 실제로 읽어들인 값을 채워서 반환하게 된다.
OutputStream의 중요 메소드
InputStream과 OutputStream은 추상클래스라고 했다. InputStream과 OutputStream은 new 연산자를 이용해서 객체화 시킬 수 없다. 즉, 아래와 같은 코드는 사용할 수 없다.
따라서 InputStream 클래스는 다음과 같은 형태로만 사용할 수 있다.
바이트 단위 IO 클래스는 가장 기본이 되는 IO 클래스다.
컴퓨터에 존재하는 모든 데이터는 바이트 단위로 구성되어 있기 때문이다. 바이트 스트림 클래스는 모두 추상 클래스(abstractclass)인 InputStream과 OutputSream의 자식(하위) 클래스다. 이는 입력과 관련된 모든 바이트 스트림은 InputStream에 있는 메소드를 포함하며, 출려과 관련된 모든 바이트 스트림은 OutputStream에 있는 메소드를 포함한다.
InputStream과 OutputStream
InputStream과 OutputStream은 모든 바이트 스트림의 최상위 클래스다.
InputStream과 OutputStream 클래스는 추상클래스로서, 바이트 단위로 입출력하기 위한 가장 기본적인 메소드가 있다.
InputStream의 중요 메소드
메소드 | 설명 |
---|---|
int available() throws IOException |
현재 읽을 수 있는 바이트 수를 반환한다. |
void close() throws IOException |
입력 스트림을 닫는다. |
int read() throws IOException |
입력 스트림에서 한 바이트를 읽어 int 값으로 반환한다. 더 이상 읽어 들여할 경우 내용이 없을 경우, -1을 반환한다. |
int read(byte buf[]) throws IOException |
입력 스트림에서 buf[] 크기만큼을 읽어 buf에 저장하고, 읽은 바이트 수를 반환한다. 더 이상 읽어 들여야 할 내용이 없을 경우, -1을 반환한다. |
int skip(long numBytes) throws IOException |
numBytes로 지정된 바이트를 무시하고, 무시된 바이트 수를 반환한다. |
InputStream은 바이트 단위로 입력 받기 위한 클래스라고 했다. 그런데 위에서 보면 read() 메소드를 통해 byte형을 반환하는 것이 아니라 int형을 반환하는 것을 알 수 있다. 그 이유는 byte형으로 반환할 경우, 파일 끝을 나타내는 기호로 사용할 마당한 값이 없기 때문이다.
이런 이유로 -1을 반환할 수 있는 int형을 사용하게 된다. 따라서 read() 메소드는 정수 하위 8비트에 실제로 읽어들인 값을 채워서 반환하게 된다.
OutputStream의 중요 메소드
메소드 | 설명 |
---|---|
void close() throws IOException | 출력 스트림을 닫는다. |
void flush() throws IOException | 버퍼에 남은 출력 스트림을 출력한다. |
void write(int i) throws IOException | 정수 i의 하위 8비트를 출력한다. |
void write(byte buf[]) throws IOException | buf 배열의 내용을 출력한다. |
void write(byte buf[], int index, int size) throws IOException |
buf 배열의 index위치부터 size만큼의 바이트를 출력한다. |
InputStream과 OutputStream은 추상클래스라고 했다. InputStream과 OutputStream은 new 연산자를 이용해서 객체화 시킬 수 없다. 즉, 아래와 같은 코드는 사용할 수 없다.
InputStream in = new InputStream();
따라서 InputStream 클래스는 다음과 같은 형태로만 사용할 수 있다.
InputStream in = new InputStream 클래스를 상속 받는 클래스의 생성자();
'개인참고자료 > 자바(네트워크)' 카테고리의 다른 글
바이트 기반 스트림 - FileInputStream과 FileOutputStream (0) | 2008.07.13 |
---|---|
바이트 기반 스트림 - System.in을 이용해서 키보드로부터 입력받기 (0) | 2008.07.13 |
바이트 기반 스트림 - File 클래스를 이용한 임시파일의 생성과 삭제 (0) | 2008.07.13 |
바이트 기반 스트림 - File 클래스를 이용한 디렉토리의 파일 목록 출력 (0) | 2008.07.13 |
바이트 기반 스트림 - File 클래스를 이용한 파일 삭제 (0) | 2008.07.13 |