import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;

public class Ex09_Writer {

	public static void main(String[] args) {
		int data;

		try {
			// Reader : 문자 입력 스트림
			// Writer : 문자 출력 스트림
			// OutputStreamWriter : byte 출력 스트림을 문자 출력 스트림으로 변환
			
			Reader rd = new InputStreamReader(System.in);
			Writer wt = new OutputStreamWriter(System.out);

			System.out.println("문자열 입력[Ctrl+Z:종료]");
			while ((data = rd.read()) != -1) {
				wt.write(data); // 하위 2byte를 출력
				wt.flush();
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

Reader 는 문자 입력 스트림을 처리하는 클래스

Writer 는 문자 출력 스트림을 처리하는 클래스

OutputStreamWriter 는 byte출력 스트림을 문자 출력 스트림으로 바꿔주는 클래스

 

Reader의 객체.read() 메소드를 통해서는 입력받는 것들을 2바이트로 처리한다.

writer의 객체.write() 메소드를 통해서 2바이트로 출력한다. 따라서 한글도 깨지지 않고 잘나온다.

 

바이트 스트림과 문자 스트림을 처리하는 클래스들 구분해두자!

 

+ Recent posts