자바의 데이터는 스트림(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() : 사용한 시스템 자원을 반납하고 출력 스트림을 닫음.
'프로그래밍 > Java' 카테고리의 다른 글
자바(Java)〃통신(1) 소켓통신으로 메시지 보내기 (1) | 2016.02.17 |
---|---|
자바(Java)〃FileOutputStream으로 파일 복사 (0) | 2016.01.23 |
자바(Java)〃FileInputStream으로 파일 읽기 (0) | 2016.01.23 |
자바(Java)〃파일클래스의 디렉토리 메소드 (0) | 2016.01.22 |
자바(Java)〃알고리즘으로 숫자 삼각형으로 나열하기 (0) | 2016.01.21 |
자바(Java)〃알고리즘으로 숫자를 세로로 나열하기 (0) | 2016.01.21 |
자바(Java)〃피보나치 수열 구하기 (0) | 2016.01.20 |
자바(Java)〃약수 구하기 (4) | 2016.01.20 |