본문 바로가기

JAVA/#혼공단3기

[혼공자] 6주차 - 입출력 스트림 요약 정리

입출력 스트림

자바에서 데이터는 스트림(stream)을 통해 입출력된다.

 

입출력 스트림 종류

  • 바이트(byte)기반 스트림: 그림, 멀티미디어 등의 바이너를 데이터를 읽고 출력 - InputStream(입력), OutputStream(출력)
  • 문자(character)기반 스트림: 문자 데이터를 읽고 출력 - Reader(입력), Writer(출력)

바이트 출력 스트림: OutputStream

바이트 기반 출력 스트림의 최상의 클래스로 추상클래스이다.

FileOutputStream, BufferedOutputStream, PrintStream, DataOutputStream 클래스는 OutputStream 클래스를 상속받는다.

메서드에는 write, flush, close 등이 있다.

 

바이트 입력 스트림: InputStream

바이트 기반 입력 스트림의 최상위 클래스로 추상클래스이다.

FileInputStream, BufferedInputStream, DataInputStream 클래스는 InputStream클래스를 상속받는다.

메서드에는 read, close 등이 있다.

 

문자 출력 스트림: Writer

문자 기반 출력 스트림의 최상의 클래스로 추상클래스이다.

FileWriter, BufferedWriter, PrintWriter, OutputStreamWriter 클래스는 Writer 클래스를 상속받는다.

메서드로는 write, flush, close 등이 있다.

 

문자 입력 스트림: Reader

문자 기반 입력 스트림의 최상의 클래스로 추상클래스이다.

FileReader, BufferedReader, InputStreamReader 클래스는 Reader 클래스를 상속받는다.

메서드로는 read, close 등이 있다.

 

보조 스트림

다른 스트림과 연결하여 여러 가지 편리한 기능을 제공해주는 스트림

보조스트림 자체로 입출력을 수행할 수 없기 때문에 InputStream, OutputStream, Writer, Reader 등에 연결해서 입출력을 수행한다.

 

보조 스트림 연결하기

보조 스트림을 생성할 때 자신이 연결될 스트림을 생성자의 매개값으로 제공하면 된다.

InputStream is = ...;
InputStreamReader reader = new InputStreamReader(is);

문자변환 보조 스트림

OutputStreamWriter

바이트 기반 출력 스트림에 연결되어 문자 출력 스트림인 Writer로 변환하는 보조 스트림

Writer writer = new OutputStreamWriter(바이트 기반 출력 스트림);

InputStreamReader

바이트 기반 입력 스트림에 연결되어 문자 입력 스트림인 Reader로 변환하는 보조 스트림

Reader reader = new InputStreamReader(바이트 기반 입력 스트림);

성능향상 보조 스트림

프로그램의 실행 성능은 입출력이 가장 늦은 장치를 따라간다.