자바(Java)〃입력 스트림 & 출력 스트림

반응형


자바의 데이터는 스트림(Stream)을 통해 입·출력되는데요. 스트림은 기본적으로 단일 방향으로 흘러가는 것으로 출발지에서 도착지로 이동합니다. 


프로그램을 기준으로 데이터가 입력받으면 입력스트림, 데이터가 프로그램에서 출력이 되면 출력스트림이라는 것이 제일 중요합니다. 


입력 스트림 & 출력 스트림

- 입력 스트림 : 키보드/ 파일/ 프로그램으로 입력받고 프로그램을 도착지로 향하는 것이 입력 스트림입니다.

- 출력 스트림 : 프로그램을 출발지로 모니터/ 파일/ 프로그램으로 향하는 것이 출력 스트림입니다. 




■ 바이트 기반 스트림 / 문자 기반 스트림

스트림 클래스는 그림,멀티미디어,문자등 모든 종류의 데이터를 주고 받는 바이트 기반 스트림과 문자만 주고받을 수 있도록 특화된 문자 기반 스트림 2종류로 나눌 수 있습니다. 


1. 클래스 이름 구조 

~~InputStream / ~~OutputStream


2. InputStream의 메소드

- int read() : 입력 스트림으로부터 1 바이트를 읽어 int형으로 리턴.

- int read(byte[] b) : 바이트들을 배열 b의 크기만큼 저장하고 실제로 읽은 바이트 수를 리턴.

- int read(byte[] b, int off, int len) : len개의 바이트만큼 읽어 b배열의 off위치부터 저장, 실제로 읽은 바이트 수 리턴

- int available() : 입력 스트림으로부터 현재 읽을 수 있는 만큼 바이트 수를 리턴.

- void close() : 사용한 시스템 자원을 반납하고 입력 스트림을 닫음.


3. OutputStream의 메소드

- void write(int b) : 출력 스트림으로 1바이트를 보냄.

- void write(byte[] b) : 배열 b의 바이트를 모두 보냄.

- void write(byte[] b, int off, int len) : off의 위치부터 len크기만큼 바이트를 보냄.

- void flush() : 출력 스트림에 잔류하고 있는 모든 바이트를 출력.

- void close() : 사용한 시스템 자원을 반납하고 출력 스트림을 닫음.  



1. 클래스 이름 구조 

~~Reader / ~~Writer 


2. Reader의 메소드

- int read() : 한개의 문자를 읽어 정수형으로 리턴.

- int read(char[] cbuf) : 문자들을 배열 cburf에 저장하고 실제로 읽은 개수 리턴.

- int read(char[] cbuf, int off, int len) : 배열 cbuf에 off의 위치부터 len 크기만큼 문자를 저장후 읽은 개수 리턴. 

- boolean ready() : 입력 스트림이 문자를 읽을 수 있는 상태인지 알려줌.

- String getEncoding() : 스트림이 사용하고 있는 문자 집합의 이름을 리턴.

- void reset() : 스트림 리셋.

- void close() : 사용한 시스템 자원을 반납하고 입력 스트림을 닫음.


3. Write의 메소드

- void write(int c) : 출력 스트림으로 주어진 한개의 문자를 출력. 

- void write(char[] cbuf) : 배열 cbuf의 모든 문자를 출력.

- void write(char[] cbuf int off, int len) : 배열 cbuf의 off위치부터 len개의 문자를 출력.

- void write(String str) : 주어진 문자열 str을 전부 출력.

- void write(String str, int off, int len) : 문자열 str의 off위치부터 len개의 문자를 출력.

- void flush() : 출력 스트림에 잔류하고 있는 모든 바이트를 출력.

- void close() : 사용한 시스템 자원을 반납하고 출력 스트림을 닫음.  


반응형