키보드로 읽어서(바이트 단위로 읽음) 문자단위로 파일에 출력해보자
bridge stream을 이용해서 1바이트씩 읽은 데이터를 문자단위로 변환한다.
※ Java IO에서 한글이 깨지는 경우
- 1byte씩 읽어서 한 문자씩 출력시
- 해결방법 : InputStreamReader bridge stream이용
- -----------------------------------------------------------
- 한 문자씩 읽어서 1byte로 출력시
- 해결방법 : OutputStreamWriter bridge stream이용
※ 1byte씩 읽어서 1byte씩 출력하거나 한 문자씩 읽어서 한 문자씩 출력할 때는 한글이 깨지지 않는다.
▲ 바이트 기반을 문자기반으로 바꿔주는 클래스 InputStreamReader를 사용하면 입력스트림에서 한 문자씩 읽어서 프로그램으로 전달한다.
▲문자 기반 스트림 클래스인 FileWriter를 이용해서 프로그램에 있는 데이터를 한 문자씩 읽어서 파일로 출력한다.
▲ 출력방법은 동일하게 입력스트림클래스.read()로 데이터를 읽어서 문자 기반의 출력스트림인 fw로 write()를 하고 write()는 자동 flush()기능이 없으므로 flush()까지 해줘야한다.
또한 파일로 출력하기 때문에 파일로 flushing을 해준 뒤 안정성을 위해 노드스트림제거를 해주어야 하므로 close()메소드를 이용하여 닫아주자.
'Java' 카테고리의 다른 글
[Java]입력과 출력 -part.4(BufferedReader/BufferedWriter) (0) | 2022.03.23 |
---|---|
[Java]입력과 출력 -part.3(File -> Monitor, File) (0) | 2022.03.23 |
[Java]입력과 출력(Input and Output) - part.1 Basic (0) | 2022.03.23 |
[Java]Thread (0) | 2022.03.22 |
[Java]익명 클래스(Anonymous Class) (0) | 2022.03.22 |