본문 바로가기

java

Step16_InputOutput(문자 입출력, InputStream, OutputStream)

 

 

keyboard 외에도 file, network 등에서 입출력하는 일이 빈번하다. 이때 byte 형식으로 data가 전송되는데 이것을 입출력하는 방법에 익숙해져야한다.

 

InputStream

1byte 처리 스트림으로 2진수 8자리 (11111111) 즉 10진수로 보자면 256가지(0~255)를 표현할 수 있다.

영문자 대소문자, 숫자, 특수문자만 처리할 수 있다.

InputStreamReader

2byte 처리 스트림으로 2진수 16자리 즉 10진수로 보자면 65,536가지를 표현할 수 있다.

모든 문자를 처리할 수 있다.

BufferedReader

문자열을 1줄씩 입력 받을 수 있다.

 

OutputStream

1byte 처리 스트림으로 출력할 때 사용한다.

OutputStreamWriter

2byte 처리 스트림으로 출력할 때 사용한다.

BufferedWriter

문자열을 출력할 수 있다. 1줄로 출력되며 개행, 들여쓰기도 가능하다.

 

비교

InputStream <=> OutputStream

InputStreamReader <=> OutputStreamWriter

BufferedReader <=> BufferedWriter

 

write() 출력준비

flush() 방출

 

개행(줄바꿈), 들여쓰기 하는 법

 

bw.write("\r\n"); 

역슬래쉬를 활용해야한다. 글꼴에 따라 예시와 같이 다르게 보일 수 있다. (정상 동작한다.)

newLine();

메소드를 사용해서 개행을 할 수도 있다.

bw.write("\t");

들여쓰기 기능을한다.

 

 

MainClass01 (InputStream)

MainClass01
MainClass01 console


InputStream

1byte 단위 처리 스트림이다.
영문자 대소문자, 숫자, 특수문자만 처리할 수 있다. (한글 처리 불가)

 

키보드와 연결된 InputStream type의 참조값을 kbd 라는 지역변수에 담아 사용했다.

 

MainClass02 (InputStreamReader)

 

MainClass02
MainClass02 console

 

InputStreamReader

2byte 처리 스트림으로 2진수 16자리 즉 10진수로 보자면 65,536가지를 표현할 수 있다.

모든 문자를 처리할 수 있다.

 

 

MainClass03 (BufferedReader )

 

MainClass03
MainClass03 console

 

BufferedReader

문자열을 1줄씩 입력 받을 수 있다.

 

BufferedReader 는 Reader type을 인자로 받는데 InputStreamReader가 Reader를 상속받기 때문에 예시에서 isr이 인자로 문제없이 사용가능했다.

 

 

MainClass04 (OutputStream)

 

MainClass04
MainClass04 console

 

예시에서 PrintStream이 다양한 기능을 담고 있길래 PrintStream type으로 변수를 사용한다면 더 유용하겠지만 OutputStream에 대해 공부하기 위해 부모 클래스인 OutputStream type을 사용하였다.

 

OutputStream은 1byte 처리 스트림이다.

OutputStream 의 write() 메소드는 해당 인자를 작성할 준비를 하는 것이다.

OutputStream 의 flush() 메소드는 준비한 것을 방출해준다.

 

 

MainClass05 (OutputStreamWriter)

 

MainClass05
MainClass05 console

 

OutputStreamWriter은 2byte 처리 스트림이다. 예시에서와 같이 1byte 혹은 문자열도 출력 가능하다. 

 

 

MainClass06 (BufferedWriter, 개행)

 

MainClass06
MainClass06 console

BufferedWriter 한줄로 해당 데이터를 출력해준다. 이때 원하는 때 개행, 들여쓰기를 하는 방법이 있다.

 

개행(줄바꿈), 들여쓰기 하는 법

 

bw.write("\r\n"); 

역슬래쉬를 활용해야한다. 글꼴에 따라 예시와 같이 다르게 보일 수 있다. (정상 동작한다.)

newLine();

메소드를 사용해서 개행을 할 수도 있다.

bw.write("\t");

들여쓰기 기능을한다.