입출력 스트림

2021. 8. 5. 13:45Java

입출력 스트림의 종류

바이트 기반 스트림 :그림, 멀티미디어 등의 데이터를 읽고 출력할 때 사용

- 출력 : OutputStream , 입력 : InputStream

 문자 기반 스트림 : 문자 데이터를 읽고 출력할 때 사용

- 출력 : Writer , 입력 : Reader

 

1. 바이트 기반 스트림

◎ OutputStream : 바이트 기반 출력 스트림의 최상위 클래스(추상 클래스). 모든 바이트 기반 출력 스트림 클래스는 OutputStream 클래스를 상속받아 만들어진다. FileOutputStream, PrintOutputStream, BufferedOutputStream, DataOutputStream은 모두 OutputStream 클래스를 상속한다.

 

주요 메소드

write(int a) : 1byte 출력

write(byte[] a) : 매개값으로 주어진 배열 a의 모든 바이트 출력

write(byte[] a, int off, int len) : 매개값으로 주어진 배열 a[off]부터 len개 까지 바이트를 출력

flush() : 출력 버퍼에 잔류하는 모든 바이트를 출력

close() : 출력 스트림을 닫음

 

◎  InputStream : 바이트 기반 입력 스트림의 최상위 클래스(추상 클래스). 모든 바이트 기반 입력 스트림은 InputStream클래스를 상속받아 만들어진다. FileInputStream, BufferedInputStream, DataInputStream클래스는 InputStream클래스를 상속한다.

 

◎ 주요 메소드

read() : 1byte를 읽고 읽은 바이트를 리턴

read(byte[] a) : 읽은 바이트를 매개값으로 주어진 배열에 저장하고 읽은 바이트 수를 리턴

read(byte[] a, int off, int len) : len개의 바이트를 읽고 매개값으로 주어진 배열에서 b[off]부터 len개 까지 저장하고 읽은 바이트 수를 리턴

close() : 입력 스트림을 닫음

 

OutputStream, InputStream 실행결과
OutputStream 실행결과
InputStream 실행결과

 

2. 문자 기반 출력 스트림

◎ Writer : 문자 기반 출력 스트림의 최상위 클래스(추상 클래스). 모든 문자 기반 출력 스트림 클래스는 Writer 클래스를 상속 받는다. FileWriter, BufferedWriter, PrintWriter, OuputStreamWriter클래스는 Writer클래스를 상속한다.

 

◎ 주요 메소드

write(int c) : 매개값으로 주어진 한 문자를 보냄

write(char[] c) : 매개값으로 주어진 배열의 모든 문자를 보냄

write(char[] c, int off, int len) : 매개값으로 주어진 배열에서 c[off]부터 len개 까지 문자를 보냄

write(String str) : 매개값으로 주어진 문자열을 보냄

write(String str, int off, int len) : 매개값으로 주어진 문자열에서 off부터 len개까지 문자를 보냄

flush() : 버퍼에 잔류하는 모든 문자를 출력

close() : 출력 스트림을 닫음

 

◎ Reader : 문자 기반 입력 스트림의 최상위 클래스(추상 클래스). 모든 문자 기반 입력 스트림 클래스는 Reader 클래스를 상속받는다. FileReader, BufferedReader, InputStreamReader클래스는 Reader 클래스를 상속한다.

 

주요 메소드

read() : 1개의 문자를 읽고 리턴

read(char[] c) : 읽은 문자들을 매개값으로 주어진 문자 배열에 저장하고 읽은 문자 수를 리턴

read(char[] c, int off, int len) : len개의 문자를 읽고 매개값으로 주어진 문자 배열에서 c[off]부터 len개 까지 저장하고 읽은 문자 수 리턴

close() : 입력 스트림을 닫음

 

Reader, Writer 사용 예
Writer 실행결과
Reader 실행결과