프로그램기준을으로
데이터가 들어오면 입력스트림(InputStream)
데이터가 나가면 출력스트림(OuputSrtream)
특징
- 스트림은 동기로 동작한다.
- Byte 단위 입출력 스트림 : 그림, 멀티미디어, 문자등 모든 종류의 데이터들을 주고받을 수 있습니다.(바이트형태로 쓰기 읽기)
- 문자 단위 입출력 스트림 : 오로지 문자만 주고받을 수 있게 특화되어 있습니다.(인코딩되어 쓰기 읽기가능)
자바 패키지(java.io)
- java.io.File : 파일 시스템의 파일/폴더 정보를 얻기 위한 클래스
- java.io.Console : 콘솔로 부터 문자를 입출력하기 위한 클래스
Byte단위 입출력 스트림
- java.io.InputStream / OuputStream : Byte 단위 입출력을 위한 최상위 입출력 스트림 클래스
- java.io.FileInputStream / FileOuputStream : Byte 단위 입출력을 위한 하위 스트림 클래스
- java.io.DataInputStream / DataOutputStream : Byte 단위 입출력을 위한 하위 스트림 클래스
- java.io.ObjectInputStream / ObjectOutputStream : Byte 단위 입출력을 위한 하위 스트림 클래스
- java.io.BufferedInputStream / BufferedOutputStream : Byte 단위 입출력을 위한 하위 스트림 클래스
- java.io.PrintStream : Byte 단위 입출력을 위한 하위 스트림 클래스
문자단위 입출력 스트림
- java.io.Reader / Writer : 문자 단위 입출력을 위한 최상위 입출력 스트림 클래스
- java.io.FileReader / FileWriter : 문자 단위 입출력을 위한 하위 스트림 클래스
- java.io.InputStreamReader / OutputStreamWriter : 문자 단위 입출력을 위한 하위 스트림 클래스
- java.io.PrintWriter : 문자 단위 입출력을 위한 하위 스트림 클래스
- java.io.BufferedReader / BufferedWriter : 문자 단위 입출력을 위한 하위 스트림 클래스
java.io.InputStream : 하위 입력 스트림 클래스의 추상클래스
Method
- read() : 입력 스트림으로부터 1바이트를 읽고 읽은 바이트를 리턴합니다
- read(byte[ ] b) : 입력 스트림으로부터 읽은 바이트들을 매개값으로 주어진 바이트 배열b에 저장하고 실제로 읽은 바이트 수를 리턴합니다.
- read(byte[] b, int off, int len) : 입력 스트림으로부터 len개의 바이트만큼 읽고 매개값으로 주어진 바이트 배열 b[off]부터 len개까지 저장합니다. 그리고 실제로 읽은 바이트 수인 len개를 리턴합니다. 만약 len개를 모두 읽지 못하면 실제로 읽은 바이트 수를 리턴합니다.
- close() : 사용한 시스템 자원을 반납하고 입력스트림을 닫습니다.
java.io.OutputStream : 하위 출력 스트림 클래스의 추상클래스
Method
- write(int b) : 출력 스트림으로부터 1바이트를 보냅니다.(b의 끝 1바이트)
- write(byte[ ] b) : 출력 스트림으로부터 주어진 바이트 배열 b의 모든 바이트를 보냅니다.
- write(byte[ ] b, int off, int len) : 출력 스트림으로 주어진 바이트 배열 b[off]부터 len개까지의 바이트를 보냅니다.
- flush() : 버퍼에 잔류하는 모든 바이트를 출력합니다.
- close() : 사용한 시스템 자원을 반납하고 출력 스트림을 닫습니다.
java.io.DataInputStream / DataOutputStream
- 데이터 입출력.
java.io.FileInputStream / FileOutputStream
- 파일 입출력
- 일반적으로 DataInputStream / DataOutputStream과 같이 사용한다.
추가정보
- flush()는 버퍼가 아직 가득 차지 않은 상황에서 강제로 버퍼의 내용을 전송함으로써 데드락(deadlock) 상태를 해제한다.
- 바이트 스트림은 1바이트를 입출력하기 때문에 일반적으로 영문자로 구성된 파일, 동영상 파일, 음악 파일의 입출력 등에 적합한 스트림입니다.
- 문자 스트림은 2바이트를 입출력하기 때문에 세계 모든 나라의 언어로 구성된 파일을 입출력할 수 있습니다. 문자 데이터만 입·출력 가능합니다.
예제
'language > java' 카테고리의 다른 글
Static 변수 / 메서드 (0) | 2019.11.28 |
---|---|
HttpURLConnection vs HttpsURLConnection (0) | 2019.11.27 |
파일 스트림 (0) | 2019.11.13 |
java EE (0) | 2019.11.08 |
EJB (0) | 2019.11.08 |